0

我在生产服务器(nginx + passenger 3)上遇到rails(3.2.6)应用程序的问题。经过页面重新加载后Rails无法找到资产

rake assets:precompile 

一个静态页面就像一个魅力,但几分钟后,我收到找不到错误的现有图像的资产。如果我再次重新编译资产,它可以正常工作,但是几分钟后,rails再次提出文件未找到的错误。

在这里你可以看到production.rb和Gemfile中:https://gist.github.com/3937589

回答

0
  • 有什么办法,你的代码是做/公用文件夹的任何操作?
  • 您是否验证过相关资产确实位于/ public文件夹中?
  • 工作中是否有cron作业或其他进程可能会干扰您的文件系统?

什么资产:预编译所做的只是通过您的应用程序/资产进行工作,并将其复制到/public/assets

这样做通常有3种优势:未压缩的原始文件,从助手(asset_path)和gzip文件引用时使用的原始文件+散列。

您可以直接进入您的生产服务器并查看/public/assets以验证是否缺少任何东西。如果该文件在那里,用户仍然有错误,我会看看我的nginx配置。

+0

谢谢,我已经重新配置nginx来通过位置声明提供静态资产,现在它正在工作。 – Steffen

+0

很高兴我能帮上忙。顺便说一句欢迎来到SO。 习惯上给予满意的答案,您发现有帮助的答案,如果答案确实解决或帮助解决问题,则应将其标记为已接受。 – Tigraine

+0

我知道,但问题在一小时前再次出现,所以答案很有帮助,但不是解决方案。它似乎足以重新启动乘客,轨道再次识别图像。 – Steffen