我们发现Firefox(至少v3)和Safari无法正确缓存从css文件引用的图像。图像被缓存,但不会刷新,即使您在服务器上更改它们。一旦Firefox在缓存中有图像,它将永远不会检查它是否已经改变。Firefox或Safari不会重新加载样式表图像
我们的CSS文件是这样的:
div#news {
background: #FFFFFF url(images/newsitem_background.jpg) no-repeat;
...
}
的问题是,如果我们现在改变newsitem_background.jpg图像,所有的Firefox用户将仍然使用旧的图像,除非他们明确地刷新页面。另一方面,IE会检测到图像已更改并自动重新加载。
这是一个已知的问题?任何解决方法?谢谢!
编辑:解决方案是不按F5。我可以做这个。但我们的客户只会访问我们的网站,并获取旧的,过时的图形。他们如何知道他们需要按F5?
我已经安装了Firebug并确认了我已经怀疑的东西:Firefox甚至不尝试从css文件中检索引用的图像,以确定它们是否已被更改。当你按下F5时,它会检查所有图像,并且网络服务器很好地响应304,除了那些已更改,其响应200 OK。
那么,有没有办法敦促火狐自动更新从css文件引用的图像?当然,我不是唯一有这个问题的人?
EDIT2:我测试这个本地主机与和图像响应不包含任何缓存的信息,它是:
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或大多数浏览器会假定图像不会经常更改(过期头和全部)。
我们已经走过了同样的结论在这里。我们需要向图片网址添加一些字符串。 – mark 2010-01-14 11:00:34
使用ctrl + f5重新加载 – 2010-03-21 03:51:19