我试图缓存控制所有静态css / js文件。代码看起来像:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/console/*.js","/console/*.css","/console/*.png","/console/*.svg")
.addResourceLocations(
ResourceUtils.CLASSPATH_URL_PREFIX + "/public/console/"
).setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS).cachePublic());
}
我可以看到正确设置了Cache-Control标头。但为什么Expires总是空白?我期待刷新所有css / js应该返回304 Not Modified而不是200 OK?
知道为什么吗?感谢
答案 0 :(得分:1)
不再需要Expires
,最新版本的Spring采用了前端缓存的最佳做法(请参阅CacheControl和original commit)。
现在,如果您未获得预期结果,可能是因为您的浏览器正在发送Cache-Control: no-cache
请求标头。如果您已经检查过"禁用缓存"浏览器开发人员工具中的复选框,或者如果您使用" ctrl + R"刷新页面。
如果这与Spring Security有关,您可能需要订阅this issue并使用the following workaround
如果没有,请在您的问题中提供更多信息(请求和响应标题是一个良好的开端)。