使用Spring MVC,Tomcat应用程序为静态资源启用浏览器缓存

时间:2015-11-05 07:19:54

标签: java spring-mvc tomcat caching browser-cache

我在我的应用程序中使用Tomcat-7, Spring-4, Hibernate-4。我尝试了两种方法使caching工作,但是当我使用gtmetrix查看时,它们似乎无法正常工作。

使用.htaccess文件的方法-1:

<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access 1 year"
  ExpiresByType image/jpeg "access 1 year"
  ExpiresByType image/gif "access 1 year"
  ExpiresByType image/png "access 1 year"
  ExpiresByType text/css "access 1 month"
  ExpiresByType application/pdf "access 1 month"
  ExpiresByType application/x-javascript "access 1 month"
  ExpiresByType application/x-shockwave-flash "access 1 month"
  ExpiresByType image/x-icon "access 1 year"
  ExpiresDefault "access 2 days"
</IfModule>

使用Spring MVC xml Config mvc:interceptors的方法-2:

<mvc:interceptors>
   <mvc:interceptor>
        <mvc:mapping path="/resources/*"/>
        <bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor">
          <property name="cacheSeconds" value="31556926"/>
          <property name="useExpiresHeader" value="true"/>
          <property name="useCacheControlHeader" value="true"/>
          <property name="useCacheControlNoStore" value="true"/>
        </bean>
    </mvc:interceptor>
 </mvc:interceptors>


我可以使用Tomcat, Spring-MVC使browser caching工作的其他方法有哪些?
请分享您的经验。

1 个答案:

答案 0 :(得分:2)

另一种方法是:

<mvc:resources mapping="/static/**" location="/public-resources/" 
       cache-period="31556926"/>
<mvc:annotation-driven/>