Rails生产中的资产图像

时间:2011-09-26 07:02:59

标签: ruby-on-rails-3 production assets

我发现了资产图像的一些奇怪行为

如果我在托管生产模式下运行独角兽 - /assets/image.png - 服务器给我空白图像,即文件存在,但大小= 0。同时在localhost我运行在独角兽开发模式 - 一切正常,然后我在托管运行webrick - 图像显示正常。之后我在localhost上以生产模式运行独角兽,图像停止显示,然后我在开发图像中运行独角兽已经无法正常工作。

Rails 3.1.0.rc6,之后我在主机上更新到rc8但没有发生任何事情

也许生产模式可以构建一些缓存,这仍然是永久性的?

1 个答案:

答案 0 :(得分:6)

有不同的事情可能出错,所以在这里你需要检查的想法:

  • Rails 3.1中存在一个已知错误,即资产的预编译无法正常工作。有关解决方案的问题,请参阅Upgrade to Rails 3.1.0 from rc6, asset precompile fails
  • 我在为生产创建预编译资产时遇到了问题。以下内容适用于我(修复上述错误后):
    1. 确保您的应用程序未在生产模式下运行。
    2. 致电bundle exec rake assets:clean。这将清理所有闲置的资源。
    3. 之后致电bundle exec rake assets:precompile。因此,目录/public/assets应填充附加了哈希值的资产(例如icon_add-96985e087048a8c2e09405494509750d.gif而不是icon-add.gif)。
    4. 以生产模式启动服务器。
  • 根据我使用的浏览器,我不得不刷新甚至清除所有缓存。特别是Chrome在缓存资源方面非常讨厌,他不应该缓存。

我希望有些想法可以帮助您找到问题的根源。