Firefox或Safari不会重新加载样式表图像
我们发现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或大多数浏览器会假定图像不会经常更改(过期头和全部)。
回答:
我只是将一个查询字符串值添加到图像url。我通常只是创建一个“版本号”,每次增加它的图像变化:
div#news { background: url(images/newsitem_background.jpg?v=00001) no-repeat;
...
}
回答:
尝试在按住SHIFT键的同时单击重新加载(或按F5键)。
否则,使用Firebug等工具检查HTTP请求/响应头并观察控制缓存的头值。我从来没有注意到这个问题。也许你的服务器正在返回一个304响应(未修改)。
回答:
我知道这可能不是你想要听到的,但它更有可能是Firefox遵循标准,而IE做的事情有点奇怪(你只是碰巧依赖它))。
缓存行为取决于与图像一起发送的缓存标题。如果您可以发布标题(或其中一个图像的URL),那么我们将能够更具体地告诉您发生了什么。
回答:
验证您正在提供的映像上的HTTP标头以及CSS文件。
如果它们中的任何一个被设置为缓存(或缺失),您会发现浏览器正在缓存文件。
回答:
为了避免这个问题,我看到网站管理员将版本号添加到他们的文件。所以他们加载site-look-124.css和newsitem_background-7.jpg。
不错的解决方案,恕我直言。
回答:
这不会解决的火狐没有检查如果图像已经过期的问题,但你可以做什么,以确保您的客户看到正确的图像是:
设置图像中的CSS的PHP或similiar脚本返回图像:
div#news { background: #FFFFFF url(images/background.php?name=newsitem) no-repeat;
...
}
然后使用脚本返回我用它在我的主服务器上的图像”
<?php $name = isset($_REQUEST['name']) ? $_REQUEST['name'] : false;
switch($name) {
case 'newsitem':
$filename = 'news_item_background.jpg';
break;
default:
$filename = 'common_background.jpg';
break;
}
header("Content-Type: image/jpeg");
header("Content-Transfer-Encoding: binary");
$fp = fopen($filename , "r");
if ($fp) fpassthru($fp);
随机返回一个背景IMAG e用于我的一些页面,而Firefox似乎不会缓存这些内容。如果你喜欢,你也可以用图像做一些时髦的图形。
回答:
另外一个快速的工作,各地(如果这种情况主要发生在网页设计的中间)是查看实际的CSS页面在Firefox中,并重新加载页面,然后当你返回到网站浏览器将读取当前的CSS页面。
,当然这是一个临时的修复只是为网页设计师
以上是 Firefox或Safari不会重新加载样式表图像 的全部内容, 来源链接: utcz.com/qa/259646.html