我在Tomcat(版本9)服务器的web.xml中添加了以下代码:
<filter>
<filter-name>CachingFilter</filter-name>
<filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
<init-param>
<param-name>ExpiresDefault</param-name>
<param-value>access plus 14 days</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CachingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
它在任何图像、脚本、子页面等任何地方都能很好地工作。响应中包含所有资源的“Expires”头。
但是对于根资源,没有这样的头,我不明白为什么。日志中没有错误或警告或任何东西。是否有可能对根资源进行特殊处理,从而禁用缓存?
编辑
我激活了ExpiresFilter的日志以查看更多详细信息,但日志指示根资源的expires头设置正确。
org.apache.catalina.filters.ExpiresFilter.onBeforeWriteResponseBody Request [/] with response status [200] content-type [text/html;charset=UTF-8], set expiration date [10/3/22 4:33 PM]
但是响应只是不包含Expires-Header或任何其他缓存头。
1条答案
按热度按时间lyr7nygr1#
您可以按照java文档中提供的步骤来查看到底发生了什么。
Troubleshooting