IE 11忽略缓存控制头作为响应

时间:2016-11-14 14:26:59

标签: tomcat caching cache-control expires-header

我在Tomcat的web.xml中设置了Expires过滤器。标头响应正确,但IE仍然没有缓存。它始终向Tomcat提出新的请求。

<filter>
<filter-name>ExpiresFilter</filter-name>
<filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
<init-param>
<param-name>ExpiresByType image/png</param-name>
<param-value>access plus 2 hours</param-value>
</init-param>

</filter>
<filter-mapping>
        <filter-name>ExpiresFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
</filter-mapping>

以下是来自respone的标题

缓存控制:max-age = 7199

到期日:2016年11月14日星期一16:08:22 GMT

内容类型:image / png

Transfer-Encoding:chunked

日期:2016年11月14日星期一14:08:22 GMT

有谁知道,我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

看起来你缺少的是谷歌搜索,这会导致你Microsoft's own documentation on cache-control

简短回答:您必须同时使用Pragma: no-cacheCache-Control: no-cacheExpires

更新2019-01-24

以上说明适用于禁用缓存,而能够强制缓存的答案可以在这个精确的答案中找到: Make IE to cache resources but always revalidate