【问题标题】:Rails can't find asset after page reload页面重新加载后 Rails 找不到资产
【发布时间】:2012-10-23 08:15:23
【问题描述】:

我在生产服务器(nginx + 乘客 3)上遇到了一个 rails (3.2.6) 应用程序的问题。经过一个

rake assets:precompile

一个静态页面就像一个魅力,但几分钟后我收到一个现有图像的资产未找到错误。如果我再次重新编译资产,它可以工作,但几分钟后 rails 再次引发 file-not-found 错误。

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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 nginx ruby-on-rails-3.2 passenger


    【解决方案1】:
    • 您的代码是否可以通过任何方式对 /public 文件夹进行任何操作?
    • 您是否验证了相关资产确实在 /public 文件夹中?
    • 是否存在可能会干扰您的文件系统的 cron 作业或其他进程?

    assets:precompile 所做的只是简单地处理您的应用程序/资产并将它们复制到/public/assets

    这样做通常有 3 个好处:未压缩的原始文件、原始文件 + 从帮助程序 (asset_path) 引用时使用的哈希和 gzip 压缩文件。

    您可以直接转到您的生产服务器并查看/public/assets 以验证是否缺少任何内容。如果文件在那里并且用户仍然收到错误,我会查看我的 nginx 配置。

    【讨论】:

    • 谢谢,我已经重新配置 nginx 以通过位置声明提供静态资产,现在它可以工作了。
    • 很高兴我能帮上忙。顺便说一句,欢迎来到 SO。习惯上对您认为有帮助的答案进行投票,如果答案确实解决或帮助解决了问题,则应将其标记为已接受。
    • 我知道,但问题在一小时前再次出现,所以答案很有帮助,但不是解决方案。似乎重新启动乘客和铁路再次识别图像就足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2015-10-15
    • 1970-01-01
    • 2020-03-01
    • 2012-08-18
    • 1970-01-01
    • 2016-08-01
    相关资源
    最近更新 更多