2016-07-17 4 views
0

기존의 몇 가지를 보았습니다. answers하지만 다음 웹 엔진을 추가하면 404가 반환되기 시작합니다. 모든 웹 서버에 대해 캐시 제어를 구성하려면 어떻게해야합니까?봄 부팅시 webjars에 대한 캐시 제어를 구성하는 방법

@Configuration 
public class HttpCacheControlConfig extends WebMvcConfigurerAdapter { 


    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/webjars/**").setCachePeriod(3600 * 24); 
    } 
} 

답변

1

처리기에 대한 리소스 위치를 구성하지 않았습니다. 그런 다음 같은 캐시 기간을 가지고 정적 자원 모두를위한 행복 경우 그냥 속성으로 구성 할 수 있습니다 당신은 WebMvcConfigurerAdapter 필요하지 않습니다,

registry.addResourceHandler("/webjars/**") 
     .addResourceLocations("classpath:/META-INF/resources/webjars/") 
     .setCachePeriod(3600 * 24); 

다른 방법 :이 같은 뭔가가 필요 application.properties :

spring.resources.cache-period = 86400 
+0

안녕하세요, '캐시 기간'을 설정하고 구성하면 어떻게됩니까? 나는 대부분의 정적에 대해 정상적인 기본값을 원하지만 webjars에 대해서는 다른 것을 원한다고 할 수 있습니까? 기본적으로 캐시를 내 정적 자원을 아직 파기하지 않았지만 웹 항아리는 버전이 나열되어 있다는 장점이 있습니다. – xenoterracide

+0

둘 다 구성하면 웹 jars 자원의 캐시 기간이 어댑터에 의해 구성됩니다. 다른 모든 정적 자원에는 application.properties에 캐시 기간이 구성됩니다. –

+0

밝혀졌습니다. .setCacheControl (CacheControl.maxAge (30, TimeUnit.DAYS) .cachePublic()); 'public cloudfront가 캐시되지 않기로 결정했습니다. 정적 컨트롤러 응답 ... 'public'에 대한 마법 속성 설정이 있다고 가정하지 않습니까? ' – xenoterracide