我正在springboot中构建一个Web应用程序。它由springboot-security保护。我想缓存我所有的公共资源,比如图像,javascript和css文件,让我们说一个星期。我需要其他一切不被缓存,因为它包含敏感数据。
我已经设法在具有这些属性的所有资源上获得304代码,但我无法在Google Chrome中的网络选项卡上看到缓存控制标题
spring.main.banner-mode=off
spring.main.logStartupInfo=false
spring.resources.cache-period=86400
我的第一个问题是,这会以某种方式削弱或打破春季安全吗?其次,如何设置缓存控制头?
我一直在挖掘网络并找到了这些例子
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("/resources/");
}
@RequestMapping(value = "/foo", method = RequestMethod.GET)
public String someAction(HttpServletResponse response) {
response.setHeader("Cache-Control", "no-transform, public, max-age=86400");
// ...
}
据我所知,这两个选项在某些方面禁用了springboot的安全性 无论如何,我不知道如何组合它们,或者即使我应该...这些解决方案也给我304,但所有这些选项都给了我
以下可缓存资源的新鲜生命周期较短。为以下资源指定将来至少一周的到期日期:
on tools.pingdom.com
有谁知道如何为公共和静态资源设置更长的缓存?任何帮助将非常感激。谢谢!