Merge pull request #5171 from bclozel/gh-4683
* pr/5171: Polish contribution Add configuration key for GzipResourceResolver
This commit is contained in:
@@ -169,6 +169,12 @@ public class ResourceProperties implements ResourceLoaderAware {
|
||||
*/
|
||||
private boolean htmlApplicationCache = false;
|
||||
|
||||
/**
|
||||
* Enable resolution of already gzipped resources. Checks for a resource
|
||||
* name variant with the *.gz extension.
|
||||
*/
|
||||
private boolean gzipped = false;
|
||||
|
||||
@NestedConfigurationProperty
|
||||
private final Strategy strategy = new Strategy();
|
||||
|
||||
@@ -208,6 +214,14 @@ public class ResourceProperties implements ResourceLoaderAware {
|
||||
this.htmlApplicationCache = htmlApplicationCache;
|
||||
}
|
||||
|
||||
public boolean isGzipped() {
|
||||
return this.gzipped;
|
||||
}
|
||||
|
||||
public void setGzipped(boolean gzipped) {
|
||||
this.gzipped = gzipped;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -85,6 +85,7 @@ import org.springframework.web.servlet.i18n.FixedLocaleResolver;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
|
||||
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
||||
import org.springframework.web.servlet.resource.AppCacheManifestTransformer;
|
||||
import org.springframework.web.servlet.resource.GzipResourceResolver;
|
||||
import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
|
||||
import org.springframework.web.servlet.resource.ResourceResolver;
|
||||
import org.springframework.web.servlet.resource.VersionResourceResolver;
|
||||
@@ -396,6 +397,9 @@ public class WebMvcAutoConfiguration {
|
||||
if (strategy.getFixed().isEnabled() || strategy.getContent().isEnabled()) {
|
||||
chain.addResolver(getVersionResourceResolver(strategy));
|
||||
}
|
||||
if (properties.isGzipped()) {
|
||||
chain.addResolver(new GzipResourceResolver());
|
||||
}
|
||||
if (properties.isHtmlApplicationCache()) {
|
||||
chain.addTransformer(new AppCacheManifestTransformer());
|
||||
}
|
||||
|
||||
@@ -71,6 +71,7 @@ import org.springframework.web.servlet.resource.CachingResourceTransformer;
|
||||
import org.springframework.web.servlet.resource.ContentVersionStrategy;
|
||||
import org.springframework.web.servlet.resource.CssLinkResourceTransformer;
|
||||
import org.springframework.web.servlet.resource.FixedVersionStrategy;
|
||||
import org.springframework.web.servlet.resource.GzipResourceResolver;
|
||||
import org.springframework.web.servlet.resource.PathResourceResolver;
|
||||
import org.springframework.web.servlet.resource.ResourceHttpRequestHandler;
|
||||
import org.springframework.web.servlet.resource.ResourceResolver;
|
||||
@@ -228,11 +229,13 @@ public class WebMvcAutoConfigurationTests {
|
||||
"spring.resources.chain.strategy.fixed.enabled:true",
|
||||
"spring.resources.chain.strategy.fixed.version:test",
|
||||
"spring.resources.chain.strategy.fixed.paths:/**/*.js",
|
||||
"spring.resources.chain.html-application-cache:true");
|
||||
assertThat(getResourceResolvers("/webjars/**")).hasSize(2);
|
||||
"spring.resources.chain.html-application-cache:true",
|
||||
"spring.resources.chain.gzipped:true");
|
||||
assertThat(getResourceResolvers("/webjars/**")).hasSize(3);
|
||||
assertThat(getResourceTransformers("/webjars/**")).hasSize(2);
|
||||
assertThat(getResourceResolvers("/**")).extractingResultOf("getClass")
|
||||
.containsOnly(VersionResourceResolver.class, PathResourceResolver.class);
|
||||
.containsOnly(VersionResourceResolver.class, GzipResourceResolver.class,
|
||||
PathResourceResolver.class);
|
||||
assertThat(getResourceTransformers("/**")).extractingResultOf("getClass")
|
||||
.containsOnly(CssLinkResourceTransformer.class,
|
||||
AppCacheManifestTransformer.class);
|
||||
|
||||
@@ -322,6 +322,7 @@ content into your application; rather pick only the properties that you need.
|
||||
spring.resources.cache-period= # Cache period for the resources served by the resource handler, in seconds.
|
||||
spring.resources.chain.cache=true # Enable caching in the Resource chain.
|
||||
spring.resources.chain.enabled= # Enable the Spring Resource Handling chain. Disabled by default unless at least one strategy has been enabled.
|
||||
spring.resources.chain.gzipped=false # Enable resolution of already gzipped resources.
|
||||
spring.resources.chain.html-application-cache=false # Enable HTML5 application cache manifest rewriting.
|
||||
spring.resources.chain.strategy.content.enabled=false # Enable the content Version Strategy.
|
||||
spring.resources.chain.strategy.content.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.
|
||||
|
||||
Reference in New Issue
Block a user