【问题标题】:Rails 3.1 image asset timeoutRails 3.1 图像资产超时
【发布时间】:2011-11-14 04:09:18
【问题描述】:

Rails 3.1 上的图像出现间歇性问题。

有问题的文件是一个简单的 PNG;所有其他图像都正常工作。如果我直接查看资产路径,图像将按预期工作。重新启动服务器(Webrick,正在开发中)没有帮助。清除浏览器缓存没有帮助。

当我重新加载页面时,图像显示,但浏览器显示它仍在加载。 30 秒后请求超时,图像被损坏的图像指示器替换。

以下是一些支持图片:

https://skitch.com/matt_darby/fahke/oops-google-chrome-could-not-connect-to-localhost-3000

https://skitch.com/matt_darby/fahkp/oops-google-chrome-could-not-connect-to-localhost-3000

https://skitch.com/matt_darby/fahkw/contact.html.haml-documents-code-protectedmethod.com-app-views-pages-vim

【问题讨论】:

  • 这些请求的 webrick 日志中显示了什么?
  • 相关行:Started GET "/assets/phone.png" ... Served assets /phone.png - 200 OK (2ms)

标签: ruby-on-rails asset-pipeline


【解决方案1】:

我怀疑这不起作用,因为您在本地以生产模式运行,或者在您的配置中打开了摘要。

在您看来,您应该使用asset_tag 助手:

%img{ :src => asset_path('/assets/phone.png') }

这可确保将正确的路径(带有指纹)呈现到视图中。

您拥有的代码将在开发模式下工作(或没有摘要),但在它们打开或生产时会中断。

如果这是一个升级的应用程序,请检查 Rails asset pipeline guide 以获取正确的内容以粘贴到您的配置文件中。

【讨论】:

  • 此错误正在开发中,不幸的是,使用asset_path 或image_tag 帮助程序时该行为仍然存在。
  • 这很奇怪,因为标题显示了一个 etag,它只出现在生产中。您是否尝试过删除 tmp/cache/assets 中的文件并重新启动?
【解决方案2】:

我也遇到了这个问题,Richard Hulse 在上面对他自己的回答的评论:“删除 tmp/cache/assets 中的文件并重新启动”为我解决了这个问题。谢谢 Richard。

【讨论】:

    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 2011-09-06
    • 2011-09-27
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    相关资源
    最近更新 更多