我在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
有谁知道,我在这里缺少什么?
答案 0 :(得分:2)
看起来你缺少的是谷歌搜索,这会导致你Microsoft's own documentation on cache-control。
简短回答:您必须同时使用Pragma: no-cache
,Cache-Control: no-cache
和Expires
。
更新2019-01-24
以上说明适用于禁用缓存,而能够强制缓存的答案可以在这个精确的答案中找到: Make IE to cache resources but always revalidate