2016-08-24 100 views
4

我试图让春季启动让浏览器缓存静态资源。 我的资源位于classpath下的“static”。当我查看发回的头文件时,我看到修改头文件设置正确,但不知怎的,头文件“Cache-Control:no-store”也被添加。如何启用浏览器缓存在春季启动

HTTP/1.1 200 
Last-Modified: Wed, 24 Aug 2016 08:50:16 GMT 
Cache-Control: no-store 
Accept-Ranges: bytes 
Content-Type: text/css 
Content-Length: 434554 
Date: Wed, 24 Aug 2016 09:42:42 GMT 

我已经看到了这个答案How to enable HTTP response caching in Spring Boot,但这似乎并没有因为我没有使用弹簧安全适用于我来说,这是不是在classpath。

我使用带有百里香的弹簧靴1.4.0。

那么,如何让spring引导不包含Cache-Control头?

+0

即使挂答案是否谈论Spring Security,你有没有尝试过任何答案?例如,接受的答案的最后一个代码片段不是关于Spring Security。 – g00glen00b

+0

_“标题”缓存控制:no-cache“”_你的例子说“无存储”,这是不一样的。和“无店”是安全相关的。 – zeroflagL

+0

@ g00glen00b只有外部库的答案看起来是合理的,但我认为这应该可以在spring-boot本身内解决。 – Wouter

回答

2

原来这很容易解决。

目录结构是classpath:/ static/assets。若要加入到无响应Cache-Control头,加入这个类:

@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/assets/**").addResourceLocations("classpath:/static/assets/").setCacheControl(CacheControl.empty()); 
    } 
} 

它仍然难倒了“无店铺”是春天开机默认..