【发布时间】:2012-11-14 16:37:19
【问题描述】:
我的网站上有一个使用背景图片的 div 标签。当我们对该图像进行微小的文本更改并将其通过 ftp 传输回服务器时,它会继续将其作为 304 未修改并使用缓存版本提供服务。只有在我们强制刷新浏览器之前,它才会获取新图像。
我已经阅读了您可以在 HTTP 响应标头中将 Cache-Control 设置为 no-cache 的位置(我使用的是 IIS 7.5),但这仍然没有任何作用,仍然使用缓存的图像并发送回 304。我的解决方法是重命名图像并更改 div 的 css 并且确实有效,但我正在寻找更好的方法。理想情况下,我们希望这个单一图像是动态的,以便我们可以经常更改它,但我们不希望我们的客户必须知道刷新他们的浏览器。
有解决办法吗?
【问题讨论】:
-
AFAIK,在服务器上没有可靠的方法可以做到这一点。我一直在尝试解决类似的任务,但最好的解决方案仍然是一种解决方法:我们有一个 js 函数,它通过不时向它的 src 添加一个随机参数来更新图像。
-
shiftoff 的评论可能是对的:向 img src URL 添加参数可能会强制服务器重新发送图像,因为服务器通常根据查询字符串中的参数提供缓存内容。如果查询字符串发生变化,IIS 应该发送新版本。
标签: asp.net http iis-7 http-headers iis-7.5