2016-07-17 13 views
0

私はすでにいくつかのanswersを見たことがありますが、次のすべてのwebjarsを追加すると404が返されます。すべてのWebjarsのキャッシュ制御を設定するにはどうすればよいですか?春の起動時に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:私は `キャッシュperiod`を設定し、これを設定している場合

spring.resources.cache-period = 86400 
+0

ちょっとおかげで、何が起こりますか?私はほとんどの静的には正常なデフォルトを望んでいますが、Webjarsでは何か違うと言いますか?基本的に私は自分自身の静的リソースをキャッシュしていませんが、ウェブジャーはそれらにリストされたバージョンを持つことによって得られます。 – xenoterracide

+0

両方を設定すると、Web jarsリソースのキャッシュ期間がアダプタによって設定されます。他のすべての静的リソースは、application.propertiesにキャッシュ期間が設定されます。 –

+0

私は '.setCacheControl(CacheControl.maxAge(30、TimeUnit.DAYS).cachePublic());を実行しなければなりませんpublic cloudfrontがキャッシュしないようにしています静的コントローラレスポンス... 'public'のための魔法のプロパティ設定はないと思いますか? ' – xenoterracide

関連する問題