RoR 应用程序:"The asset 'application.css' is not present in the asset pipeline" 移至生产服务器后

RoR App: "The asset 'application.css' is not present in the asset pipeline" after moving to production server

将 Rails 上的 Ruby 应用程序移动到生产服务器 (AWS EC2 Amazon Linux 2018.03) 后,由于错误 "The asset 'application.css' is not present in the asset pipeline"(预编译),页面无法呈现文件存在于 public/assets 中): production.log

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

我遵循了 post 的提示: ,但没有帮助。

我的堆栈:

如有任何提示,我将不胜感激。

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

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

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

config.assets.compile = true