我们正在使用gravtars用于当前在rails 2.3.4中开发的站点,并且我发现即使在gravtar侧发生变化之后,rails侧也会缓存图像。我知道使用javascript你可以在使用javacript_include_tag :cache => false
方法时阻止缓存,但是,有没有办法在使用image_tag
助手时阻止缓存?
我已经阅读了一下,看起来它曾经在url后面附加了一些参数(即src="image.png?123123"
),但它似乎不再这样做了。
任何想法,或者我应该停止使用那些该死的乐于助人的助手作为拐杖,并且在我的轨道中开发生活一次写下一些实际代码?
答案 0 :(得分:2)
我能想到的一个选择就是编写一个小帮手,将“?YYYYMMDDHH”附加到Gravatar URL的末尾。您可以生成包含年,月,日和小时的URL。这样,浏览器缓存应该只有一个小时的陈旧时间。
这会增加用户的感知加载时间,因为图像的浏览器缓存速度会降低。你可以调整任意数量的方式:YYYYMMDD,YYYYMMDDHHm等。你必须权衡最新的Gravatar图像与页面渲染速度的重要性。
答案 1 :(得分:0)
您是在谈论网站http://en.gravatar.com/吗?
Rails仅将缓存清除时间戳附加到本地资源。如果从其他站点请求图像,则不会修改src属性。如果您需要欺骗浏览器不缓存远程图像,则必须手动设置src。
-Anton