java - tomcat ExpiresFilter 不起作用

标签 java tomcat

以下是我的 webapp 的 web.xml 中的一个片段

<filter>
   <filter-name>ExpiresFilter</filter-name>
   <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class>
   <init-param>
      <param-name>ExpiresByType text/css</param-name>
      <param-value>access plus 3 months</param-value>
   </init-param>
   <init-param>
      <param-name>ExpiresByType text/html</param-name>
      <param-value>access plus 3 months</param-value>
   </init-param>
   <init-param>
      <param-name>ExpiresByType application/javascript</param-name>
      <param-value>access plus 3 months</param-value>
   </init-param>
</filter>
<filter-mapping>
   <filter-name>ExpiresFilter</filter-name>
   <url-pattern>/css/*</url-pattern>
   <url-pattern>/dist/*</url-pattern>
   <url-pattern>/lib/*</url-pattern>
   <url-pattern>/partials/*</url-pattern>
   <dispatcher>REQUEST</dispatcher>
</filter-mapping>

当将 logging.properties 设置为 FINER 时,我得到

2015 11:51:35 AM org.apache.catalina.filters.ExpiresFilter isEligibleToExpirationHeaderGeneration FINE: Request "/kuku/dist/js/vendor.js.map" with response status "200" content-type "null", expiration header already defined

我在tomcat的conf目录下搜索

grep -r expire conf

并没有找到任何东西。

可以在哪里设置过期 header ?

最佳答案

我不知道它是否有帮助,但实际上有两种情况您会收到该日志消息:

  • 如果响应已经有“Expires” header

  • 如果响应具有指定“max-age”属性的“Cache-control” header 。

引用:

(我假设我已经找到了正确的源代码...)

关于java - tomcat ExpiresFilter 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022453/

相关文章:

java - 使用 Java 更新 MongoDB 中的循环数组

tomcat - Liferay - Tomcat 不从部署文件夹中选择 WAR

java - BasicLogger Tomcat 的 NoClassDefFoundError

tomcat - 在单个系统窗口 8.1 上运行多个 tomcat 9 实例

apache - Bad Gateway 代理服务器从上游服务器 - Azure 服务器收到无效响应

java - 并行执行在 Appium 中不起作用

java - AspectJ:避免执行枚举

java - JScrollPane 不适用于 JTextArea

java - Spring MVC 3.1 : Problems in using SimpleUrlHandlerMapping and generic base controller

java - 两个struts2 webapps一起启动失败