2017-08-24 52 views
2

我想緩存控制所有靜態css/js文件。代碼如下所示:爲什麼春季開機設置過期標題爲過期:?

@Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/console/*.js","/console/*.css","/console/*.png","/console/*.svg") 
       .addResourceLocations(
       ResourceUtils.CLASSPATH_URL_PREFIX + "/public/console/" 

     ).setCacheControl(CacheControl.maxAge(365, TimeUnit.DAYS).cachePublic()); 
    } 

我可以看到Cache-Control標頭設置正確。但爲什麼Expires永遠是空白的?我期待刷新所有的CSS/JS應返回304不修改,而不是200 OK?

任何想法爲什麼?謝謝

回答

1

Expires不再需要,最近版本的Spring採用了前端緩存的最佳實踐(請參閱CacheControloriginal commit)。

現在,如果您沒有得到預期的結果,可能是因爲您的瀏覽器正在發送Cache-Control: no-cache請求標頭。如果您在瀏覽器開發人員工具中選中了「禁用緩存」複選框,或者您已使用「Ctrl + R」刷新頁面,通常會發生這種情況。

如果這是關係到春季安全,你可能想訂閱this issue和使用the following workaround

如果不是,請提供您的問題的詳細信息(請求和響應頭是一個良好的開端)。

+0

嗯,它看起來像彈簧安全設置參數:默認無緩存。 ()。cacheControl()。disable() –

+0

用Spring安全編輯我的答案 –