类 EncodedResourceResolver

java.lang.Object
cn.taketoday.web.resource.AbstractResourceResolver
cn.taketoday.web.resource.EncodedResourceResolver
所有已实现的接口:
ResourceResolver

public class EncodedResourceResolver extends AbstractResourceResolver
Resolver that delegates to the chain, and if a resource is found, it then attempts to find an encoded (e.g. gzip, brotli) variant that is acceptable based on the "Accept-Encoding" request header.

The list of supported contentCodings can be configured, in order of preference, and each coding must be associated with extensions.

Note that this resolver must be ordered ahead of a VersionResourceResolver with a content-based, version strategy to ensure the version calculation is not impacted by the encoding.

作者:
Rossen Stoyanchev
  • 字段详细资料

  • 构造器详细资料

    • EncodedResourceResolver

      public EncodedResourceResolver()
  • 方法详细资料

    • setContentCodings

      public void setContentCodings(List<String> codings)
      Configure the supported content codings in order of preference. The first coding that is present in the "Accept-Encoding" header for a given request, and that has a file present with the associated extension, is used.

      Note: Each coding must be associated with a file extension via registerExtension(java.lang.String, java.lang.String) or setExtensions(java.util.Map<java.lang.String, java.lang.String>). Also customizations to the list of codings here should be matched by customizations to the same list in CachingResourceResolver to ensure encoded variants of a resource are cached under separate keys.

      By default this property is set to ["br", "gzip"].

      参数:
      codings - one or more supported content codings
    • getContentCodings

      public List<String> getContentCodings()
      Return a read-only list with the supported content codings.
    • setExtensions

      public void setExtensions(Map<String,String> extensions)
      Configure mappings from content codings to file extensions. A dot "." will be prepended in front of the extension value if not present.

      By default this is configured with ["br" -> ".br"] and ["gzip" -> ".gz"].

      参数:
      extensions - the extensions to use.
      另请参阅:
    • getExtensions

      public Map<String,String> getExtensions()
      Return a read-only map with coding-to-extension mappings.
    • registerExtension

      public void registerExtension(String coding, String extension)
      Java config friendly alternative to setExtensions(Map).
      参数:
      coding - the content coding
      extension - the associated file extension
    • resolveResourceInternal

      protected cn.taketoday.core.io.Resource resolveResourceInternal(@Nullable RequestContext request, String requestPath, List<? extends cn.taketoday.core.io.Resource> locations, ResourceResolvingChain chain)
      指定者:
      resolveResourceInternal 在类中 AbstractResourceResolver
    • getAcceptEncoding

      @Nullable private String getAcceptEncoding(RequestContext request)
    • getExtension

      private String getExtension(String coding)
    • resolveUrlPathInternal

      protected String resolveUrlPathInternal(String resourceUrlPath, List<? extends cn.taketoday.core.io.Resource> locations, ResourceResolvingChain chain)
      指定者:
      resolveUrlPathInternal 在类中 AbstractResourceResolver