public class VersionResourceResolver extends AbstractResourceResolver
さまざまなバージョン管理戦略が存在し、どの戦略がどのリソースに適用されるかを示すパスマッピングと共に、このリゾルバーを 1 つ以上のこのような戦略で構成する必要があります。
ContentVersionStrategy は、使用できない場合を除き、適切なデフォルトの選択肢です。最も注目すべきは、ContentVersionStrategy を JavaScript モジュールローダーと組み合わせることはできません。そのような場合には、FixedVersionStrategy の方が適しています。
このリゾルバーを使用して CSS ファイルを提供するということは、CSS ファイル内のリンクを変更してこのリゾルバーによって生成された適切なバージョンも含めるために、CssLinkResourceTransformer も使用する必要があることを意味します。
VersionStrategylogger| コンストラクターと説明 |
|---|
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 reactor.core.publisher.Mono<Resource> | resolveResourceInternal(ServerWebExchange exchange, StringSE requestPath, ListSE<? extends Resource> locations, ResourceResolverChain chain) |
protected reactor.core.publisher.Mono<StringSE> | resolveUrlPathInternal(StringSE resourceUrlPath, ListSE<? extends Resource> locations, ResourceResolverChain chain) |
void | setStrategyMap(MapSE<StringSE, VersionStrategy> map)URL パスをキーとして、 VersionStrategy を値としてマップを設定します。 |
resolveResource, resolveUrlPathcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic 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 パスパターン ContentVersionStrategypublic 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 パスパターン FixedVersionStrategypublic VersionResourceResolver addVersionStrategy(VersionStrategy strategy, StringSE... pathPatterns)
strategy - カスタム戦略 pathPatterns - リソースハンドラーで構成されたパターンに関連する、1 つ以上のリソース URL パスパターン VersionStrategyprotected reactor.core.publisher.Mono<Resource> resolveResourceInternal(@Nullable ServerWebExchange exchange, StringSE requestPath, ListSE<? extends Resource> locations, ResourceResolverChain chain)
AbstractResourceResolver の resolveResourceInternal protected reactor.core.publisher.Mono<StringSE> resolveUrlPathInternal(StringSE resourceUrlPath, ListSE<? extends Resource> locations, ResourceResolverChain chain)
AbstractResourceResolver の resolveUrlPathInternal @Nullable protected VersionStrategy getStrategyForPath(StringSE requestPath)
VersionStrategy を見つけます。VersionStrategy のインスタンス、またはそのリクエストパスに一致するものがない場合は null