配置 Tomcat 以利用浏览器缓存?
Posted
技术标签:
【中文标题】配置 Tomcat 以利用浏览器缓存?【英文标题】:configuring Tomcat for leveraging browser caching? 【发布时间】:2012-06-27 18:45:34 【问题描述】:我在我们的网络应用上运行 Google 的 Page Speed 来分析和优化我们的网站。
Page Speed 中列出的Web Performance Best Practices 下的许多项目之一说“为了充分利用所有浏览器一致缓存的全部优势,我们建议您将 Web 服务器配置为显式设置缓存标头和将它们应用于所有可缓存的静态资源,而不仅仅是一小部分(例如图像)。可缓存资源包括 JS 和 CSS 文件、图像文件和其他二进制对象文件(媒体文件、PDF、Flash 文件等)。一般来说, html 不是静态的,不应被视为可缓存的。”
我如何配置 tomcat 来达到同样的效果?我知道它可以通过过滤器通过放置一些 HTTP 标头来完成,但是我们可以通过配置而不接触代码来完成它吗?
编辑:我们使用 JSF 1.2 仅作为信息,尽管我认为这与这个问题的上下文无关。
【问题讨论】:
【参考方案1】:如果您使用的是 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>
【讨论】:
以上是关于配置 Tomcat 以利用浏览器缓存?的主要内容,如果未能解决你的问题,请参考以下文章