2016-04-25 20 views
5

Sto utilizzando l'avvio a molla e lo /static è servito come risorse statiche come js e css, finora così buono, mentre voglio impostare l'intestazione della cache di questi file, così ho provato questo:Imposta setCachePeriod per le risorse statiche nell'innesto di primavera

@Configuration 
public class BaseMvcConfig extends WebMvcConfigurerAdapter { 
    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/").setCachePeriod(24 * 3600 * 365); 
    } 
} 

Tuttavia dopo che, l'applicazione può non servire nulla dalla cartella /static.

Qual è il problema?

risposta

9

A mio parere, è preferibile utilizzare la proprietà spring.resources.cache-period per impostare il periodo di cache predefinito Boot Gestione risorse. Quindi aggiungere il seguente al vostro application.properties:

spring.resources.cache-period = 31536000 

ed eliminare il file di configurazione BaseMvcConfig.

+0

appena provato che, i file può essere servito, mentre non ci sono intestazioni 'cache' correlate nella risposta. – hguser

+0

Il mio sta aggiungendo 'Cache-Control: max-age = 31536000'. Quale versione di Spring Boot stai usando? Se hai altre configurazioni, pubblicale alla domanda .. –

+0

Con le configurazioni predefinite di Spring, se si salva il file in 'classpath:/static/all.css', è possibile accedervi tramite' http: // localhost: 8080/all.css'. Se stai usando quella Java Config, dovresti inviare la tua richiesta a 'http: // localhost: 8080/static/all.css'. –

0

Se si desidera utilizzare la protezione a molla per i controller e la cache di configurazione per i contenuti statici, allora si potrebbe desiderare di configurare le eccezioni nel WebSecurityConfigurerAdapter e impostare il periodo di cache in application.properties:

@Override 
public void configure(WebSecurity web) throws Exception { 
    web.ignoring().antMatchers("/js/**", "/css/**"); 
} 

#1 week cache 
spring.resources.cache-period = 604800 
Problemi correlati