クラス VersionResourceResolver

java.lang.ObjectSE
org.springframework.web.reactive.resource.AbstractResourceResolver
org.springframework.web.reactive.resource.VersionResourceResolver
実装されたすべてのインターフェース:
ResourceResolver

public class VersionResourceResolver extends AbstractResourceResolver
リソースが遠い将来(たとえば 1 年)の日付でキャッシュされ、バージョン、URL が変更されるまでキャッシュされる HTTP キャッシュ戦略の一部として使用できるバージョン文字列を含むリクエストパスを解決します。

さまざまなバージョン管理戦略が存在し、どの戦略がどのリソースに適用されるかを示すパスマッピングと共に、このリゾルバーを 1 つ以上のこのような戦略で構成する必要があります。

ContentVersionStrategy は、使用できない場合を除き、適切なデフォルトの選択肢です。最も注目すべきは、ContentVersionStrategy を JavaScript モジュールローダーと組み合わせることはできません。そのような場合には、FixedVersionStrategy の方が適しています。

このリゾルバーを使用して CSS ファイルを提供するということは、CSS ファイル内のリンクを変更してこのリゾルバーによって生成された適切なバージョンも含めるために、CssLinkResourceTransformer も使用する必要があることを意味します。

導入:
5.0
作成者:
Rossen Stoyanchev, Brian Clozel
関連事項:
  • コンストラクターの詳細

    • VersionResourceResolver

      public VersionResourceResolver()
  • メソッドの詳細

    • setStrategyMap

      public void setStrategyMap(MapSE<StringSE,VersionStrategy> map)
      URL パスをキーとして、VersionStrategy を値としてマップを設定します。

      直接 URL 一致と Ant スタイルのパターン一致をサポートします。構文の詳細については、AntPathMatcher javadoc を参照してください。

      パラメーター:
      map - URL をキー、バージョン戦略を値として持つマップ
    • getStrategyMap

      public MapSE<StringSE,VersionStrategy> getStrategyMap()
      パスパターンをキーとするバージョン戦略を使用してマップを返します。
    • addContentVersionStrategy

      public VersionResourceResolver addContentVersionStrategy(StringSE... pathPatterns)
      指定されたパスパターンに一致するリソース URL にコンテンツベースのバージョンを挿入します。バージョンは、ファイルのコンテンツから計算されます。"css/main-e36d2e05253c6c7085a91522ce43a0b4.css" これは、たとえば JavaScript モジュールローダーを使用する場合など、使用できない場合を除き、JavaScript ファイルを提供するために addFixedVersionStrategy(java.lang.String, java.lang.String...) を使用するのに適したデフォルト戦略です。
      パラメーター:
      pathPatterns - リソースハンドラーで構成されたパターンに関連する、1 つ以上のリソース URL パスパターン
      戻り値:
      連鎖メソッド呼び出しの現在のインスタンス
      関連事項:
    • addFixedVersionStrategy

      public VersionResourceResolver addFixedVersionStrategy(StringSE version, StringSE... pathPatterns)
      指定されたパスパターン(例: "{version}/js/main.js")に一致するリソース URL に、プレフィックスベースの固定バージョンを挿入します。これは、JavaScript モジュールローダーを使用する場合に便利です(コンテンツベースのバージョンに対して)。

      バージョンは、乱数、現在の日付、git commit sha、プロパティファイル、環境変数から取得され、構成内の SpEL 式で設定された値(たとえば、Java 構成の @Value を参照)です。

      まだ実行されていない場合は、指定された pathPatterns のバリアント (接頭辞 version が付いたもの) も構成されます。例: "/js/**" パスパターンを追加すると、引数として指定された version 文字列である "v1.0.0" を使用して "/v1.0.0/js/**" も自動的に構成されます。

      パラメーター:
      version - バージョン文字列
      pathPatterns - リソースハンドラーで構成されたパターンに関連する、1 つ以上のリソース URL パスパターン
      戻り値:
      連鎖メソッド呼び出しの現在のインスタンス
      関連事項:
    • addVersionStrategy

      public VersionResourceResolver addVersionStrategy(VersionStrategy strategy, StringSE... pathPatterns)
      指定されたパスパターンに一致するリソース URL に適用するカスタム VersionStrategy を登録します。
      パラメーター:
      strategy - カスタム戦略
      pathPatterns - リソースハンドラーで構成されたパターンに関連する、1 つ以上のリソース URL パスパターン
      戻り値:
      連鎖メソッド呼び出しの現在のインスタンス
      関連事項:
    • resolveResourceInternal

      protected reactor.core.publisher.Mono<Resource> resolveResourceInternal(@Nullable ServerWebExchange exchange, StringSE requestPath, ListSE<? extends Resource> locations, ResourceResolverChain chain)
      次で指定:
      クラス AbstractResourceResolverresolveResourceInternal 
    • resolveUrlPathInternal

      protected reactor.core.publisher.Mono<StringSE> resolveUrlPathInternal(StringSE resourceUrlPath, ListSE<? extends Resource> locations, ResourceResolverChain chain)
      次で指定:
      クラス AbstractResourceResolverresolveUrlPathInternal 
    • getStrategyForPath

      @Nullable protected VersionStrategy getStrategyForPath(StringSE requestPath)
      リクエストされたリソースのリクエストパスの VersionStrategy を見つけます。
      戻り値:
      VersionStrategy のインスタンス、またはそのリクエストパスに一致するものがない場合は null