在web项目中,如果使用了页面,就会涉及到css/js等组件。下面讲解了如何在SpringMVC项目中,相应css、js、img文件,并启用浏览器缓存等机制。
本文使用的Spring版本为4.2.7.RELEASE。
我的项目结构目录如下:
1234567891011121314 | <mvc:resources mapping="/favicon.ico" location="/assets/favicon.ico" cache-period="600"> <mvc:cache-control cache-public="true" /></mvc:resources><mvc:resources mapping="/assets/**" location="/assets/" cache-period="600"> <mvc:cache-control cache-public="true"/> <mvc:resource-chain resource-cache="true"> <mvc:resolvers> <bean class="org.springframework.web.servlet.resource.GzipResourceResolver"/> </mvc:resolvers> </mvc:resource-chain></mvc:resources><mvc:resources mapping="/package.json" location="/assets/package.json" cache-period="600"> <mvc:cache-control cache-public="true"/></mvc:resources> |
---|
cache-period指明缓存时间为600秒,即10分钟。 GzipResourceResolver是对该静态文件进行压缩。
配置Spring的拦截器,实现对静态文件的的缓存
123456789101112131415 | <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/assets/**"/> <bean id="webContentInterceptor" class="org.springframework.web.servlet.mvc.WebContentInterceptor"> <property name="cacheSeconds" value="2100"/> <property name="alwaysUseFullPath" value="true"/> <property name="cacheMappings"> <props> <!-- cache for one month --> <prop key="/assets/**">2592000</prop> </props> </property> </bean> </mvc:interceptor></mvc:interceptors> |
---|