【发布时间】:2010-09-17 01:26:45
【问题描述】:
我们发现 Firefox(至少 v3)和 Safari 不能正确缓存从 css 文件引用的图像。图像被缓存,但它们永远不会刷新,即使您在服务器上更改它们也是如此。一旦 Firefox 将图像放入缓存中,它就永远不会检查它是否已更改。
我们的 css 文件如下所示:
div#news {
background: #FFFFFF url(images/newsitem_background.jpg) no-repeat;
...
}
问题在于,如果我们现在更改 newsitem_background.jpg 图片,所有 Firefox 用户仍将获得旧图片,除非他们明确刷新页面。另一方面,IE 会检测到图像已更改并自动重新加载。
这是一个已知问题吗?任何解决方法?谢谢!
编辑:解决方法是不要按 F5。我可以做这个。但我们的客户只会访问我们的网站,并获得旧的、过时的图形。他们怎么知道他们需要按 F5?
我已经安装了 Firebug 并确认了我已经怀疑的事情:Firefox 甚至不尝试检索从 css 文件引用的图像,以查明它们是否已被更改。当您按 F5 时,它会检查所有图像,并且 Web 服务器会很好地响应 304,除了那些已经更改的图像,它会响应 200 OK。
那么,有没有办法促使 Firefox自动更新从 css 文件引用的图像?肯定不止我一个人有这个问题?
EDIT2:我用 localhost 测试了这个,图像响应不包含任何缓存信息,它是:
Server Microsoft-IIS/5.1
X-Powered-By ASP.NET
Date Tue, 14 Oct 2008 11:01:27 GMT
Content-Type image/jpeg
Accept-Ranges bytes
Last-Modified Tue, 14 Oct 2008 11:00:43 GMT
Etag "7ab3aa1aec2dc91:9f4"
Content-Length 61196
EDIT3:我已经阅读了更多内容,但似乎无法修复它,因为 Firefox 或大多数浏览器只会假设图像不会经常更改(标题和所有内容都过期)。
【问题讨论】:
标签: css firefox safari firefox-3