对静态资源的HTTP缓存支持
优质
小牛编辑
139浏览
2023-12-01
为优化站点性能,静态资源应该带有恰当的'Cache-Control'
值与其他必要的头。配置一个ResourceHttpRequestHandler
处理器服务静态资源请求不仅会读取文件的元数据并填充'Last-Modified'
头的值,正确配置时'Cache-Control'
头也会被填充。【这段翻得还不是很清晰】
你可以设置ResourceHttpRequestHandler
上的cachePeriod
属性值,或使用一个CacheControl
实例来支持更细致的指令:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/public-resources/")
.setCacheControl(CacheControl.maxAge(1, TimeUnit.HOURS).cachePublic());
}
}
XML中写法则如下:
<mvc:resources mapping="/resources/**" location="/public-resources/">
<mvc:cache-control max-age="3600" cache-public="true"/>
</mvc:resources>