public class VersionResourceResolver extends AbstractResourceResolver
さまざまなバージョン管理戦略が存在し、どの戦略がどのリソースに適用されるかを示すパスマッピングと共に、このリゾルバーを 1 つ以上のこのような戦略で構成する必要があります。
ContentVersionStrategy
は、使用できない場合を除き、適切なデフォルトの選択肢です。最も注目すべきは、ContentVersionStrategy
を JavaScript モジュールローダーと組み合わせることはできません。そのような場合には、FixedVersionStrategy
の方が適しています。
このリゾルバーを使用して CSS ファイルを提供するということは、CSS ファイル内のリンクを変更してこのリゾルバーによって生成された適切なバージョンも含めるために、CssLinkResourceTransformer
も使用する必要があることを意味します。
VersionStrategy
logger
コンストラクターと説明 |
---|
VersionResourceResolver() |
修飾子と型 | メソッドと説明 |
---|---|
VersionResourceResolver | addContentVersionStrategy(StringSE... pathPatterns) 指定されたパスパターンに一致するリソース URL にコンテンツベースのバージョンを挿入します。 |
VersionResourceResolver | addFixedVersionStrategy(StringSE version, StringSE... pathPatterns) 指定されたパスパターン(例: "{version}/js/main.js" )に一致するリソース URL に、プレフィックスベースの固定バージョンを挿入します。 |
VersionResourceResolver | addVersionStrategy(VersionStrategy strategy, StringSE... pathPatterns) 指定されたパスパターンに一致するリソース URL に適用するカスタム VersionStrategy を登録します。 |
protected VersionStrategy | getStrategyForPath(StringSE requestPath) リクエストされたリソースのリクエストパスの VersionStrategy を見つけます。 |
MapSE<StringSE, VersionStrategy> | getStrategyMap() パスパターンをキーとするバージョン戦略を使用してマップを返します。 |
protected Resource | resolveResourceInternal(HttpServletRequestEE request, StringSE requestPath, ListSE<? extends Resource> locations, ResourceResolverChain chain) |
protected StringSE | resolveUrlPathInternal(StringSE resourceUrlPath, ListSE<? extends Resource> locations, ResourceResolverChain chain) |
void | setStrategyMap(MapSE<StringSE, VersionStrategy> map) URL パスをキーとして、 VersionStrategy を値としてマップを設定します。 |
resolveResource, resolveUrlPath
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public void setStrategyMap(MapSE<StringSE,VersionStrategy> map)
VersionStrategy
を値としてマップを設定します。 直接 URL 一致と Ant スタイルのパターン一致をサポートします。構文の詳細については、AntPathMatcher
javadoc を参照してください。
map
- URL をキー、バージョン戦略を値として持つマップ public MapSE<StringSE,VersionStrategy> getStrategyMap()
public VersionResourceResolver addContentVersionStrategy(StringSE... pathPatterns)
"css/main-e36d2e05253c6c7085a91522ce43a0b4.css"
これは、たとえば JavaScript モジュールローダーを使用する場合など、使用できない場合を除き、JavaScript ファイルを提供するために addFixedVersionStrategy(java.lang.String, java.lang.String...)
を使用するのに適したデフォルト戦略です。pathPatterns
- リソースハンドラーで構成されたパターンに関連する、1 つ以上のリソース URL パスパターン ContentVersionStrategy
public VersionResourceResolver addFixedVersionStrategy(StringSE version, StringSE... pathPatterns)
"{version}/js/main.js"
)に一致するリソース URL に、プレフィックスベースの固定バージョンを挿入します。これは、JavaScript モジュールローダーを使用する場合に便利です(コンテンツベースのバージョンに対して)。 バージョンは、乱数、現在の日付、git commit sha、プロパティファイル、環境変数から取得され、構成内の SpEL 式で設定された値(たとえば、Java 構成の @Value
を参照)です。
まだ行われていない場合は、version
が接頭辞として付けられた、指定された pathPatterns
のバリアントも構成されます。例: "/js/**"
パスパターンを追加すると、"/v1.0.0/js/**"
と "v1.0.0"
が引数として指定された version
文字列を自動的に同時に構成します。
version
- バージョン文字列 pathPatterns
- リソースハンドラーで構成されたパターンに関連する、1 つ以上のリソース URL パスパターン FixedVersionStrategy
public VersionResourceResolver addVersionStrategy(VersionStrategy strategy, StringSE... pathPatterns)
strategy
- カスタム戦略 pathPatterns
- リソースハンドラーで構成されたパターンに関連する、1 つ以上のリソース URL パスパターン VersionStrategy
protected Resource resolveResourceInternal(@Nullable HttpServletRequestEE request, StringSE requestPath, ListSE<? extends Resource> locations, ResourceResolverChain chain)
AbstractResourceResolver
の resolveResourceInternal
protected StringSE resolveUrlPathInternal(StringSE resourceUrlPath, ListSE<? extends Resource> locations, ResourceResolverChain chain)
AbstractResourceResolver
の resolveUrlPathInternal
@Nullable protected VersionStrategy getStrategyForPath(StringSE requestPath)
VersionStrategy
を見つけます。VersionStrategy
のインスタンス、またはそのリクエストパスに一致するものがない場合は null