RoR应用程序:移至生产服务器后,“资产管道中不存在资产'application.css'”

时间:2019-06-25 11:59:47

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

将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

如果有任何提示,我将非常感谢。

1 个答案:

答案 0 :(得分:0)

您可以确认您的app / assets / stylesheets文件夹应包含application.css文件,并且必须在生产环境中预编译资产,然后才能在生产环境中启动/启动服务器。 您可以使用

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

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

config.assets.compile = true