【问题标题】:Prevent image caching in rails on a per tag basis防止基于每个标签在 Rails 中缓存图像
【发布时间】:2009-11-13 01:23:04
【问题描述】:

我们正在将 gravtars 用于当前在 rails 2.3.4 中开发的站点,我发现即使在 gravtar 端发生更改后,rails 端也倾向于缓存图像。我知道使用 javascript 可以在使用 javacript_include_tag :cache => false 方法时阻止缓存,但是,有没有办法在使用 image_tag 帮助器时阻止缓存?

我已经阅读了一些内容,它似乎曾经在带有一些参数的 url 之后附加时间戳信息(即src="image.png?123123"),但它似乎不再这样做了。

有什么想法,或者我应该停止使用那些该死的有用的助手作为拐杖,并且在我的轨道开发生活中编写一些实际代码吗?

【问题讨论】:

  • image_tag 生成的 html 是什么? image_tag 应该生成缓存破坏网址。
  • 你说的是 gravatar.com 还是别的什么?
  • @danivovich 我确实在谈论 gravatar.com @Andy,我的问题是 image_tag 没有生成缓存破坏 url,@avaynshtok 下面提到了它,因为它只针对本地资源。

标签: ruby-on-rails helper assets


【解决方案1】:

我能想到的一个选项是编写一个小助手,将“?YYYYMMDDHH”附加到 Gravatar URL 的末尾。您可以生成包含年、月、日和小时的 URL。这样浏览器缓存最多只能过期一个小时。

这将增加您的用户的感知加载时间,因为图像被浏览器缓存的频率会降低。您可以通过多种方式进行调整:YYYYMMDD、YYYYMMDDHHm 等。您必须权衡拥有最新 Gravatar 图像与页面渲染速度的重要性。

【讨论】:

  • 谢谢巴里,如果我确实决定为用户采用最新的方法,这就是我必须采用的方法。干杯!
【解决方案2】:

你说的是http://en.gravatar.com/这个网站吗?

Rails 仅将缓存清除时间戳附加到本地资源。如果图像是从另一个站点请求的,它不会修改 src 属性。如果您需要欺骗浏览器不缓存远程图像,则必须手动设置 src。

-安东

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    • 2013-12-18
    • 2014-04-21
    • 2015-11-06
    相关资源
    最近更新 更多