配置Tomcat以利用浏览器缓存?

Inq*_*ive 6 apache jsf tomcat servlets pagespeed

我在我们的网络应用程序上运行Google的Page Speed来分析和优化我们的网站.

Page Speed中列出的Web性能最佳实践项目中的众多项目之一说:"为了充分利用所有浏览器中一致的缓存优势,我们建议您将Web服务器配置为显式设置缓存标头并将其应用于所有可缓存的静态资源,而不仅仅是一个小的子集(如图像).可缓存的资源包括JS和CSS文件,图像文件和其他二进制目标文件(媒体文件,PDF,Flash文件等).一般来说,HTML不是静态的,不应被视为可缓存."

如何配置tomcat实现相同?我知道它可以通过放置一些HTTP头来通过过滤器完成,但是我们可以在不通过配置触及代码的情况下完成吗?

编辑:仅供参考,我们使用JSF 1.2虽然我认为这与此问题的上下文无关.

小智 9

如果您使用的是Tomcat7,则会有内置的过滤器. http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Expires_Filter

我们使用精彩的URlRewriteFilter来做到这一点.没有代码更改,只需配置到web.xml,就是这样.链接和规则如下.

http://tuckey.org/urlrewrite/

  <rule>
        <from>^.*\.(js|css|gif)$</from>
        <set type="expires">6 hours</set>
  </rule>
Run Code Online (Sandbox Code Playgroud)