的Spring Security默認情況下增加了以下緩存頭:如何刪除過期使用Spring高速緩存控制頭
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
這對我們的HTML頁面的好環境。對於靜態資源(圖片,CSS等),我們希望將它們緩存起來。按照Spring documentation,它可以像這樣被配置:
@EnableWebMvc
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry
.addResourceHandler("/resources/**")
.addResourceLocations("/resources/")
.setCachePeriod(31556926);
}
}
導致下面的HTTP標頭:
Cache-Control: max-age=604800
Pragma:
Expires: 0
這是除了Expires
頭,它仍然表明該文件不應該是好的緩存。 (該標準指出,max-age
優先Expires
。但是,我們的中間緩存仍然將其視爲非緩存)。
如何才能去掉Expires
頭(或將其設置爲空)的緩存文件?如果我們配置緩存期,爲什麼Spring不刪除它?
你使用的是什麼版本的spring-web?如果你使用的是spring-web-4.2.5.RELEASE.jar,你可能會遇到https://jira.spring.io/browse/SPR-14005你可以看到,如果spring-web- 4.2.4.RELEASE.jar –
我們仍然在4.2.4。所以它與SPR-14005無關。但是,在其中一個bug的評論中,有一個如何從Spring Security中排除某些資源的示例。這對我們來說是一個可行的解決方案你想添加是作爲一個答案?無論如何感謝鏈接。 – Codo
感謝您的回覆和反饋。請不要在該JIRA上使用解決方法。有關詳細信息,請參閱以下答案 –