public class WebJarsResourceResolver extends AbstractResourceResolver
ResourceResolver
that delegates to the chain to locate a resource and then
attempts to find a matching versioned resource contained in a WebJar JAR file.
This allows WebJars.org users to write version agnostic paths in their templates,
like <script src="/webjars/jquery/jquery.min.js"/>
.
This path will be resolved to the unique version <script src="/webjars/jquery/1.2.0/jquery.min.js"/>
,
which is a better fit for HTTP caching and version management in applications.
This also resolves resources for version agnostic HTTP requests "GET /jquery/jquery.min.js"
.
This resolver requires the org.webjars:webjars-locator-core
library
on the classpath and is automatically registered if that library is present.
Be aware that WebJarAssetLocator
constructor performs a classpath scanning that
could slow down application startup.
logger
Constructor and Description |
---|
WebJarsResourceResolver()
Create a
WebJarsResourceResolver with a default WebJarAssetLocator instance. |
WebJarsResourceResolver(org.webjars.WebJarAssetLocator webJarAssetLocator)
Create a
WebJarsResourceResolver with a custom WebJarAssetLocator instance,
e.g. |
Modifier and Type | Method and Description |
---|---|
protected String |
findWebJarResourcePath(String path) |
protected reactor.core.publisher.Mono<Resource> |
resolveResourceInternal(ServerWebExchange exchange,
String requestPath,
List<? extends Resource> locations,
ResourceResolverChain chain) |
protected reactor.core.publisher.Mono<String> |
resolveUrlPathInternal(String resourceUrlPath,
List<? extends Resource> locations,
ResourceResolverChain chain) |
resolveResource, resolveUrlPath
public WebJarsResourceResolver()
WebJarsResourceResolver
with a default WebJarAssetLocator
instance.public WebJarsResourceResolver(org.webjars.WebJarAssetLocator webJarAssetLocator)
WebJarsResourceResolver
with a custom WebJarAssetLocator
instance,
e.g. with a custom index.protected reactor.core.publisher.Mono<Resource> resolveResourceInternal(@Nullable ServerWebExchange exchange, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain)
resolveResourceInternal
in class AbstractResourceResolver
protected reactor.core.publisher.Mono<String> resolveUrlPathInternal(String resourceUrlPath, List<? extends Resource> locations, ResourceResolverChain chain)
resolveUrlPathInternal
in class AbstractResourceResolver