【问题标题】:RoR App: "The asset 'application.css' is not present in the asset pipeline" after moving to production serverRoR 应用程序:移动到生产服务器后,“资产管道中不存在资产‘application.css’”
【发布时间】:2019-11-07 06:19:44
【问题描述】:

将我的 Ruby on Rails 应用程序移动到生产服务器 (AWS EC2 Amazon Linux 2018.03) 后,页面不呈现,因为错误“资产管道中不存在资产‘application.css’”(存在预编译文件在公共/资产中): production.log

但是,当我刷新我的应用程序时(有时不止一次),此文件在缓存中找到并且页面正在正确呈现。似乎服务器不等待文件预编译或类似的东西。它不仅发生在第一页条目上,而且发生在每次视图更改时。

我遵循了帖子中的提示: application.css not in asset pipeline,但没有帮助。

我的堆栈:

  • 红宝石 2.6.3
  • 导轨 5.2.3
  • 独角兽5.5.1
  • nginx 1.14.1

我将非常感谢任何提示。

【问题讨论】:

    标签: css ruby-on-rails nginx production-environment precompile


    【解决方案1】:

    您可以确认您的 app/assets/stylesheets 文件夹应该有 application.css 文件,并且您必须在生产环境中的 go/start 服务器之前在生产环境中预编译资产。 您可以使用

    预编译资产
    RAILS_ENV=production rails assets:precompile
    

    如果它仍然无法正常工作,那么您可以尝试将 production.rb 中的 config.assets.compile 选项设置为 true,这样它就会进行实时编译。虽然它在生产环境中应该是错误的,因为它会影响性能。

    config.assets.compile = true
    

    【讨论】:

    • 不幸的是,它没有帮助
    • 我认为第一个命令应该是 rake 而不是 rails 即RAILS_ENV=production rake assets:precompile
    • @Artur 尝试重启 rails。
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 2023-03-26
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多