public class CssLinkResourceTransformer extends ResourceTransformerSupport
ResourceTransformer
implementation that modifies links in a CSS
file to match the public URL paths that should be exposed to clients (e.g.
with an MD5 content-based hash inserted in the URL).
The implementation looks for links in CSS @import
statements and
also inside CSS url()
functions. All links are then passed through the
ResourceResolverChain
and resolved relative to the location of the
containing CSS file. If successfully resolved, the link is modified, otherwise
the original link is preserved.
Modifier and Type | Class and Description |
---|---|
protected static class |
CssLinkResourceTransformer.AbstractCssLinkParser |
private static class |
CssLinkResourceTransformer.CssLinkInfo |
protected static interface |
CssLinkResourceTransformer.CssLinkParser |
private static class |
CssLinkResourceTransformer.ImportStatementCssLinkParser |
private static class |
CssLinkResourceTransformer.UrlFunctionCssLinkParser |
Modifier and Type | Field and Description |
---|---|
private static java.nio.charset.Charset |
DEFAULT_CHARSET |
private java.util.List<CssLinkResourceTransformer.CssLinkParser> |
linkParsers |
private static Log |
logger |
Constructor and Description |
---|
CssLinkResourceTransformer() |
Modifier and Type | Method and Description |
---|---|
private boolean |
hasScheme(java.lang.String link) |
Resource |
transform(HttpServletRequest request,
Resource resource,
ResourceTransformerChain transformerChain)
Transform the given resource.
|
getResourceUrlProvider, resolveUrlPath, setResourceUrlProvider
private static final java.nio.charset.Charset DEFAULT_CHARSET
private static final Log logger
private final java.util.List<CssLinkResourceTransformer.CssLinkParser> linkParsers
public Resource transform(HttpServletRequest request, Resource resource, ResourceTransformerChain transformerChain) throws java.io.IOException
ResourceTransformer
request
- the current requestresource
- the resource to transformtransformerChain
- the chain of remaining transformers to delegate tonull
)java.io.IOException
- if the transformation failsprivate boolean hasScheme(java.lang.String link)