我遇到了一个非常奇怪的错误。
我的网站工作得很好,但我不得不在着陆页上调整一些图片的大小,因为它太重了,而且它们的页面速度变慢了。
我使用mogrify来调整app / assets / images中的所有图像
mogrify -resize 50% *.jpg
调整大小后,我使用
删除了所有资源rake assets:clean
然后
rake assets:precompile
重新编译资产管道中的图像,但是现在图像不再显示,即使我清除了浏览器的缓存。如果我更改图像的名称,并在我的视图中相应地,一切正常。
更新:
问题是当我调整图像大小时,编译的文件名会发生变化。这是我尝试访问图像时出现的错误:
No route matches [GET] "/assets/image-small-05a31635ef97c8b04eaeb6e5f3f9053f1146ed1cae0796aed876f086f934cf0b.jpg"
但在资产路径中,同一个文件的名称为:
image-small-a8859704b69e18b59af2760e724b27560d1d40a597595308241845f563197a27.jpg
因此,文件系统上的随机部分更改但在网页中没有更改。
感谢您的帮助
答案 0 :(得分:1)
我假设您正在使用正确的资产路径助手等,因为您的资产在恶作剧之前成功出现。
请确保没有关于资产过期版本的缓存。
rake assets:clean
rake tmp:clear
rake cache:clear
停止(并重新启动)任何Ruby预加载器,如Zeus,如果你使用的话。
最后,重新启动Rails应用程序服务器。
这应该会使您的资产重新上线。