Yog*_*dra 5 tomcat caching cache-control expires-header
我正在 Tomcat 的 web.xml 中设置过期过滤器。标头正确响应,但 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>
Run Code Online (Sandbox Code Playgroud)
以下是响应的标题
缓存控制:max-age=7199
到期时间:2016 年 11 月 14 日星期一 16:08:22 GMT
内容类型:图像/png
传输编码:分块
日期:2016 年 11 月 14 日星期一 14:08:22 GMT
有谁知道,我在这里错过了什么?
简短回答:您必须同时使用Pragma: no-cache
,Cache-Control: no-cache
和Expires
所有这些。
更新 2019-01-24
以上说明用于禁用缓存,而能够强制缓存的答案可以在这个很好的 SO 答案中找到: Make IE to cache resources but always revalidate