我发现 Assets 图像有一些奇怪的行为
如果我在主机上以生产模式运行 unicorn -/assets/image.png - 服务器给我空白图像,即文件存在,但 size=0 。同时在本地主机上,我在 unicorn 开发模式下运行 - 一切正常,然后我在主机上运行 webrick - 图像显示正常。之后我在本地主机上以生产模式运行 unicorn 并且图像停止显示,然后我在开发图像中运行 unicorn 已经不起作用。
Rails 3.1.0.rc6,之后我在主机上更新到 rc8 但没有任何反应
也许生产模式会构建一些缓存,并永久保留?
最佳答案
有不同的事情可能会出错,所以这里有你必须检查的想法:
- Rails 3.1 中有一个已知错误, Assets 的预编译无法正常工作。参见 Upgrade to Rails 3.1.0 from rc6, asset precompile fails有解决方案的问题。
- 我在为生产创建预编译 Assets 时遇到了问题。以下对我有用(修复上述错误后):
- 确保您的应用程序未在生产模式下运行。
- 调用
bundle exec rake assets:clean
。这将清理周围所有的资源。 - 之后调用
bundle exec rake assets:precompile
。因此,目录/public/assets
应该用附加哈希的 Assets 填充(例如icon_add-96985e087048a8c2e09405494509750d.gif
而不是icon-add.gif
). - 以生产模式启动服务器。
- 根据我使用的浏览器,我不得不刷新甚至清除所有缓存。特别是 Chrome 在缓存他不应该缓存的资源方面非常讨厌。
我希望其中的一些想法可以帮助您找到问题的根源。
关于ruby-on-rails-3 - 生产中的 Rails Assets 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7551615/