3
我正在使用VersionResourceResolver [Spring Boot 1.2.0]進行緩存清除。使用下面的代碼,CSS資源獲取版本號,但即使在使用CssLinkResourceTransformer後,URL內部的css文件也不會獲取版本。CssLinkResourceTransformer不修改css文件中存在的URL
@Bean
public ResourceUrlEncodingFilter resourceUrlEncodingFilter() {
return new ResourceUrlEncodingFilter();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**")
.addResourceLocations("/css/")
.resourceChain(true)
.addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
.addTransformer(new CssLinkResourceTransformer())
.addTransformer(new AppCacheManifestTransformer());
}
.navbar-header {
height: 58px;
background: transparent url("../images/logo-bg.png") no-repeat left center;
}
GET https://localhost:8443/myapp/css/layout-4a5a9811a2a00e7da9b9c0f0fcfbd343.css
GET https://localhost:8443/myapp/images/logo-bg.png
我在這裏失蹤的任何東西?如何版本化URL內部的CSS文件。由於
編輯: 對不起,我應該提供的addResourceHandlers方法,我現在有它完整的代碼。請看以下相同,
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/css/**")
.addResourceLocations("/css/")
.resourceChain(true)
.addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
.addTransformer(new CssLinkResourceTransformer())
.addTransformer(new AppCacheManifestTransformer());
registry.addResourceHandler("/fonts/**")
.addResourceLocations("/fonts/")
.resourceChain(true)
.addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
.addTransformer(new AppCacheManifestTransformer());
registry.addResourceHandler("/html/**")
.addResourceLocations("/html/");
registry.addResourceHandler("/images/**")
.addResourceLocations("/images/")
.resourceChain(true)
.addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
.addTransformer(new AppCacheManifestTransformer());
registry.addResourceHandler("/js/**")
.addResourceLocations("/js/")
.resourceChain(true)
.addResolver(new VersionResourceResolver().addContentVersionStrategy("/**"))
.addTransformer(new AppCacheManifestTransformer());
}
@brain - 感謝您的評論,我用我正在使用的完整代碼更新了我的問題。我已經配置了你的建議,但仍然存在問題。 – sureshd
它不起作用,因爲您已將資源處理基礎架構註冊到單獨的資源處理程序中。嘗試在一個'addResourceHandler'下聲明所有內容,否則資源鏈無法正確處理來自單獨註冊的資源。 –
@brain - 對不起,我遲到了回覆。謝謝你的解決方案,它在一個'addResourceHandler'聲明所有東西后運作 – sureshd