3
キャッシュバスト処理にVersionResourceResolver [Spring Boot 1.2.0]を使用しています。以下のコードを使用すると、CSSリソースはバージョン番号を取得しますが、Cssファイル内のURLはCssLinkResourceTransformerを使用した後でもバージョンを取得しません。CssLinkResourceTransformerがURLの現在のCSSファイルを変更していません
@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ファイルをバージョンアップする方法。おかげ
EDIT: 私はaddResourceHandlers私は今それを持ってい方法の完全なコードを提供している必要があります申し訳ありません。 、同じの下"/css/**"
と"/images/logo-bg.png"
が一致しないパターンに一致
@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
リソース処理インフラストラクチャを別々のリソースハンドラに登録しているため、動作しません。 1つの 'addResourceHandler'の下ですべてを宣言してください。さもなければ、リソースチェーンは別個の登録からリソースを適切に処理できません。 –
@brain - 申し訳ありませんが、私は返信に遅れました。解決していただきありがとうございます.1つの 'addResourceHandler'の下にあるものすべてを宣言した後に動作します – sureshd