Tomcat的ExpiresFilter在索引页上不起作用

new9mtju  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(155)

我在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或任何其他缓存头。

lyr7nygr

lyr7nygr1#

您可以按照java文档中提供的步骤来查看到底发生了什么。
Troubleshooting

相关问题