Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet explorer IE6不缓存我的图像_Internet Explorer_Jsp_Xhtml_Internet Explorer 6_Browser Cache - Fatal编程技术网

Internet explorer IE6不缓存我的图像

Internet explorer IE6不缓存我的图像,internet-explorer,jsp,xhtml,internet-explorer-6,browser-cache,Internet Explorer,Jsp,Xhtml,Internet Explorer 6,Browser Cache,我已在生产Tomcat web服务器中上载了我的web应用程序。 我已经在尝试测试它,它在FF/IE7/IE8上运行良好,但我遇到了一个问题 在IE6上显示 我在状态栏中注意到IE6似乎时不时地下载图像。 即使我没有点击任何东西,它仍然下载图像 我使用的菜单使用图像,但在IE6上显示不好。问题是60%的目标用户 在该浏览器上运行 我开始认为这是一个浏览器缓存问题。在我所有的JSP中,我将meta标记放在所有head部分的下面。 我这样做是因为我的应用程序严重依赖Ajax,我需要我的web资源的最

我已在生产Tomcat web服务器中上载了我的web应用程序。
我已经在尝试测试它,它在FF/IE7/IE8上运行良好,但我遇到了一个问题 在IE6上显示

我在状态栏中注意到IE6似乎时不时地下载图像。 即使我没有点击任何东西,它仍然下载图像

我使用的菜单使用图像,但在IE6上显示不好。问题是60%的目标用户 在该浏览器上运行

我开始认为这是一个浏览器缓存问题。在我所有的JSP中,我将meta标记放在所有head部分的下面。 我这样做是因为我的应用程序严重依赖Ajax,我需要我的web资源的最新副本

<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>
例如,请参见如何控制静态文件类型的缓存设置。

,很可能是缓存控制。 解决这一问题的一种方法是从具有不同缓存头集的不同子域加载图像。如果您使用CDN提供程序,他们将为您设置缓存控制

他妈的糟透了!我会在IE 7-8-9上测试它。很少有人使用IE6 如果它是一个内部网应用程序,一个快速修复方法就是Chrome框架,检测它,如果它没有安装,重定向到下载页面

在我所有的JSP中,我将meta标记放在所有head部分的下面。我这样做是因为我的应用程序严重依赖Ajax,我需要我的web资源的最新副本

<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>
有两个问题:

  • webbrowser将忽略元标记。将此信息放在响应标题中

  • 即使没有忽略它,元规则也只会应用于JSP的HTML输出,因此不会应用于HTML输出中的所有链接资源(img、js、css等)。它们在各自的响应头中都有自己的规则

  • 您最好的选择是使用在静态内容的遥远未来日期添加标题的

    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.xml
    中的
    url模式中,覆盖感兴趣的url,例如
    /images/*

    请使用Firebug获取图像资源的响应头,尤其是缓存相关的响应头,并将其发布到此处。如果60%的使用在IE6上运行,您应该在IE6上完成开发(你现在有了一张痛苦的脸,你选择在另一个浏览器上发展来避免痛苦)@Ian你在说什么?这是缓存问题,不是HTML显示issue@Ian我单独使用firefox开发我的应用程序。然后我检查是否一切正常。当我用IE6测试它时,我遇到了很多浏览器显示问题。但多亏了IE6有条件的黑客攻击,我才能够修复它们,而且它们现在在FF中看起来都一样/IE6/IE7/IE8。实际上,我的问题是,IE6中的图像加载速度没有那么快,每次都会下载图像。@Pekka,在IE6中,仍然有一半以上的用户有这样的问题。所以我认为最好的风险控制总是来自于在许多用户拥有的最低浏览器上开发。@Pekka我在上面发布了一个imag示例来自Jquery UI映像的e文件。这是您正在查找的吗?@Mark yup。您需要更改的服务器端设置caching@Pekka.谢谢。我会看看这个,虽然我真的不知道怎么做。我会征求意见,因为我还是Spring MVCY的初学者。你可能忽略了他的“缓存控制”header在请求中,而不是响应中。这是因为他在执行网络捕获时刷新了此页面。但一般建议是正确的——您需要在此图像上设置刷新生存期。请参阅@BalusC@Eric(facepalm)当然。我一定是睡着了。干杯,我会去掉那个比特谢谢。现在过期的YSLOW等级是A,我在IE6中看到了相当大的加载时间速度。谢谢谢谢!首先,你知道为什么只有IE6表现出这种行为吗?为什么IE7/IE8/FF做得很好。。