Spring缓存控制问题

时间:2018-03-31 00:34:30

标签: java spring spring-boot cache-control

我正在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

有谁知道如何为公共和静态资源设置更长的缓存?任何帮助将非常感激。谢谢!

0 个答案:

没有答案