【问题标题】:rails view looks different when deployed on remote server部署在远程服务器上时,rails 视图看起来不同
【发布时间】:2015-09-04 11:07:43
【问题描述】:

在我的 rails 应用程序中,视图的外观会因运行位置而异。如果它在 localhost 上,则视图看起来如预期:

在远程机器上运行时,会变成这样:

这两个应用程序都在 WEBrick 的开发环境中运行,并且所有 .css 文件都包含在资产管道中。 Rails 版本是 4.1.7。

非常感谢任何帮助。

【问题讨论】:

    标签: css ruby-on-rails asset-pipeline


    【解决方案1】:

    我认为你应该在你的gemfile.rb 中加入这个宝石gem "non-stupid-digest-assets",如果没有包括它的话。 Rails 4 在资产方面存在一些问题。谢谢

    【讨论】:

    • 我在我的应用程序中加入了“non-stupid-digest-assets”gem,但它并没有改变任何东西。使用 capistrano 部署并重新启动服务器后,它看起来仍然一样。
    • 那里可能存在一些 css 冲突问题。你能提供我可以检查这个的网址吗?
    • 很遗憾,我无法访问该页面,因为它正在客户端计算机上运行。
    【解决方案2】:

    有时即使您认为资产已加载,也不会加载。试试看:$bundle exec rake assets:precompile RAILS_ENV=production

    如果这里加载了任何东西,你应该再做一个 git commit -m "Loading Assets for Prod" -a 然后部署

    【讨论】:

    • 我确实运行了 assets:precompile。一切都加载得更快,但看起来仍然一样。
    【解决方案3】:

    不幸的是,我忘记补充说我也在运行 ActiveAdmin。当我对其中一个错误显示的元素进行检查时,我可以在预期的自定义数据旁边看到很多与 ActiveAdmin 相关的 css 数据。即使 active_admin.css.scss 文件位于 /app/vendor/assets/stylesheets/ 而不是 /app/assests/stylesheets/ 中,它似乎也会影响我的反正意见。

    到目前为止,我的 application.css 看起来像这样:

     *= require_self
     *= require_tree .
     *= require jquery.datetimepicker
     */
    

    为了隔离问题,我完全删除了*= require_tree .,只需要必要的default.css。现在 application.css 看起来像这样:

     *= require_self
     *= require default.css
     *= require jquery.datetimepicker
     */
    

    重新加载后,现在一切看起来都和 localhost 完全一样。虽然我无法解释为什么这个配置会混淆我的观点,但新设置解决了问题:-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      相关资源
      最近更新 更多