2016-08-24 2 views
4

Ich versuche, Spring-Boot lassen Sie den Browser im Cache statische Ressourcen. Meine Ressourcen befinden sich im Klassenpfad unter "statisch". Wenn ich die zurückgesendeten Header ansehe, sehe ich, dass die Modifikationsheader gut eingestellt sind, aber irgendwie wird auch der Header "Cache-Control: no-store" hinzugefügt.Wie Browser-Caching im Frühjahr starten Boot

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 

Ich habe bereits diese Antwort How to enable HTTP response caching in Spring Boot gesehen, aber das scheint nicht zu mir gelten, da ich nicht feder Sicherheit bin, ist es nicht auf dem Classpath.

Ich benutze Spring-Boot 1.4.0 mit Thymolblatt.

Also, wie lasse ich Spring Boot nicht den Cache-Control-Header enthalten?

+0

Auch wenn die verknüpfte Antwort spricht über Spring Security, hast du irgendeine der Antworten versucht? Zum Beispiel handelt es sich bei dem letzten Codefragment der akzeptierten Antwort nicht um Spring Security. – g00glen00b

+0

_ "die Kopfzeile" Cache-Control: no-cache "" _ Ihr Beispiel sagt "no-store", was nicht dasselbe ist. Und "no-store" ist sicherheitsrelevant. – zeroflagL

+0

@ g00glen00b nur die Antwort mit der externen Lib scheint elligible, aber ich würde denken, dass dies innerhalb Spring-Boot selbst lösbar sein sollte .. – Wouter

Antwort

2

Es stellt sich heraus, es ist ziemlich einfach zu lösen.

Die Verzeichnisstruktur ist Classpath:/static/assets. keine Cache-Control-Header auf die reagiert, fügen Sie diese Klasse hinzugefügt zu haben:

@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

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

Es verblüfft mich immer noch, dass „no-store“ ist die Standardeinstellung mit Feder-boot ..