我有一个网站,它为所有图片使用CSS精灵。 我设置 .htaccess 文件,将过期的标头设置为未来时间,因为他们建议改善网站性能。
然而,当我更新精灵图片时,我在两台不同的计算机上的浏览器似乎都没有获取新图片。
我多次删除了 .htaccess ,但没有运气。
我相信这一定很容易解决,但现在我没有选择。
以下是 .htaccess 文件中的代码:
# CONFIGURE media caching # Header unset ETag FileETag None <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css)$"> Header unset Last-Modified Header set Expires "Fri, 21 Dec 2012 00:00:00 GMT" Header set Cache-Control "public, no-transform" </FilesMatch> <IfModule mod_deflate.c> <FilesMatch "\.(js|css)$"> SetOutputFilter DEFLATE </FilesMatch> </IfModule>
答案 0 :(得分:1)
通过将缓存日期设置为将来的日期,您已告知浏览器将图像存储在本地直到该日期,而不是从服务器请求它。因此,当您更改服务器上的图像时,它不会更新。
对于调试,您可以通过使用Ctrl + F5进行硬刷新并从服务器请求所有文件来解决此问题。
对于生产,您需要妥善解决这个问题。标准做法是将版本号或最后更新的日期附加到图像,css等。在这种情况下,您可以将它放入您的CSS中:
background: url(/images/my_image.png?201004071748);
然后当您更改图像时更新日期。这样,当浏览器解析CSS并请求图像时,它会认为这是与缓存的图像不同的图像,并向服务器发送新请求以获取图像。
答案 1 :(得分:0)
阅读GoDaddy文档,我发现您需要更新到“Configuration 2.0” http://help.godaddy.com/article/1078
如果GoDaddy没有从他们的http标题中删除Apache版本,那将更加明显。