6

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

Page Speed 中列出的Web 性能最佳实践下的众多项目之一说: “为了充分利用在所有浏览器中一致缓存的全部优势,我们建议您将 Web 服务器配置为显式设置缓存标头并将它们应用于所有可缓存的静态资源,不仅仅是一小部分(如图片)。可缓存资源包括 JS 和 CSS 文件、图片文件和其他二进制对象文件(媒体文件、PDF、Flash 文件等)。一般来说,HTML 不是静态的,并且不应该被认为是可缓存的。”

如何配置 tomcat 以实现相同的功能?我知道它可以通过过滤器通过放置一些 HTTP 标头来完成,但是我们可以通过配置而不接触代码来完成它吗?

编辑:我们使用 JSF 1.2 仅作为信息,尽管我认为这与这个问题的上下文无关。

4

1 回答 1

9

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

我们使用美妙的 URlRewriteFilter 来做到这一点。无需更改代码,只需配置到 web.xml,仅此而已。链接和规则如下。

http://tukey.org/urlrewrite/

  <rule>
        <from>^.*\.(js|css|gif)$</from>
        <set type="expires">6 hours</set>
  </rule>
于 2012-10-10T21:15:13.233 回答