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 的提示:
,但没有帮助。
我的堆栈:
- ruby2.6.3
- rails 5.2.3
- 独角兽 5.5.1
- nginx 1.14.1
如有任何提示,我将不胜感激。
您可以确认您的 app/assets/stylesheets 文件夹应该有 application.css 文件,并且您必须在生产环境中的 go/start 服务器之前在生产环境中预编译资产。
您可以使用
预编译资产
RAILS_ENV=production rails assets:precompile
如果它仍然不起作用,那么您可以尝试在 production.rb 中将 config.assets.compile 选项设置为 true,以便它进行实时编译。虽然它在生产环境中应该是错误的,因为它会影响性能。
config.assets.compile = true
将 Rails 上的 Ruby 应用程序移动到生产服务器 (AWS EC2 Amazon Linux 2018.03) 后,由于错误 "The asset 'application.css' is not present in the asset pipeline"(预编译),页面无法呈现文件存在于 public/assets 中): production.log
但是,当我刷新我的应用程序时(有时刷新一次),该文件在缓存中找到并且页面呈现正确。似乎服务器不等待文件预编译或类似的东西。它不仅发生在第一页条目上,而且发生在每次视图更改时。
我遵循了 post 的提示:
我的堆栈:
- ruby2.6.3
- rails 5.2.3
- 独角兽 5.5.1
- nginx 1.14.1
如有任何提示,我将不胜感激。
您可以确认您的 app/assets/stylesheets 文件夹应该有 application.css 文件,并且您必须在生产环境中的 go/start 服务器之前在生产环境中预编译资产。 您可以使用
预编译资产RAILS_ENV=production rails assets:precompile
如果它仍然不起作用,那么您可以尝试在 production.rb 中将 config.assets.compile 选项设置为 true,以便它进行实时编译。虽然它在生产环境中应该是错误的,因为它会影响性能。
config.assets.compile = true