IE6不缓存我的图片(IE6 Not caching my images)

2019-10-29 04:47发布

我上传了我的web应用程序已经在我生产的Tomcat Web服务器。
我想已经测试它和它的作品在FF / IE7 / IE8罚款,但我有在IE6上显示的问题。

我注意到在IE6似乎时不时要下载图像的状态栏。 尽管我没有任何点击,它仍然下载图像。

我使用的是使用图像的菜单,它不会对IE6显示效果不佳。 问题是,我的目标用户的60%,在这个浏览器上运行。

我开始认为这是一个浏览器缓存问题。 在我所有的JSP中,我把下面的meta标签中的所有头部分。 我这样做是因为我的应用程序在很大程度上依赖于阿贾克斯,我需要我的网络资源的最新副本。

<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
</head>

难道这是罪魁祸首,是有什么解决方法吗? 我如何可以强制IE6缓存这些图片? 谢谢。

我不完全相信,如果这是你在找什么,但如果我错过了什么请告知。

这是所下载的图像的一个例子。 我忘了提,这个应用的广告仅在我们的本地Intranet网站运行。

@Pekka,这是你在找什么?

Response Headers
Server  Apache-Coyote/1.1
Etag    W/"1957-1275442082000"
Date    Mon, 18 Oct 2010 11:37:00 GMT

Request Headers
Host    atpapps03:9090
User-Agent  Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729)
Accept  image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Referer http://atpapps03:9090/rts/css/menu.css
Cookie  JSESSIONID=0DD210EE0B2788A7774B10D477734DA9
If-Modified-Since   Wed, 02 Jun 2010 01:28:02 GMT
If-None-Match   W/"1957-1275442082000"
Cache-Control   max-age=0

Answer 1:

在我所有的JSP中,我把下面的meta标签中的所有头部分。 我这样做是因为我的应用程序在很大程度上依赖于阿贾克斯,我需要我的网络资源的最新副本。

有两个问题:

  1. meta标签是由web浏览器忽略。 将在响应报头信息。

  2. 即使它没有被忽略,元规则将只适用于JSP的HTML输出,因此不会对所有链接的资源(IMG,JS,CSS等)的HTML输出中。 他们有自己的响应头每一个自己的规则。

最好的办法是使用Filter ,其增加了Expires的静态内容远的未来日期头。

private static final long DEFAULT_EXPIRE_TIME = 604800000L; // ..ms = 1 week.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    final long twoWeeksAhead = System.currentTimeMillis() + DEFAULT_EXPIRE_TIME;
    ((HttpServletResponse) response).setDateHeader("Expires", twoWeeksAhead);
    chain.doFilter(request, response);
}

地图在此过滤器web.xmlurl-pattern覆盖感兴趣的URL,例如, /images/*



Answer 2:

例如见这个问题上如何控制静态文件类型的缓存设置。



Answer 3:

佩卡是正确的 ,它可能是缓存控制。 解决的办法是从不同的子域一组不同的缓存头的加载图片。 如果您使用CDN提供商,他们会为您设置缓存控制。

IE SUCKS! ID测试它在IE 7-8-9。 很少使用IE6如果内部网应用程序,速战速决是镀铬边框,检测到它,如果它没有安装重定向到一个下载页面。



文章来源: IE6 Not caching my images