在春季,每个请求都将通过DispatcherServlet进行处理。为了避免通过DispatcherServlet(Front contoller)请求静态文件,我们配置了MVC静态内容。
春天3.1。引入了ResourceHandlerRegistry,以配置ResourceHttpRequestHandlers以便从类路径,WAR或文件系统中提供静态资源。我们可以在Web上下文配置类中以编程方式配置ResourceHandlerRegistry。
- 我们已经将
/js/**
模式添加到ResourceHandler,让它包含目录中的foo.js
资源webapp/js/
- 我们已经将
/resources/static/**
模式添加到ResourceHandler,让它包含目录中的foo.html
资源webapp/resources/
@Configuration
@EnableWebMvc
public class StaticResourceConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
System.out.println("WebMvcConfigurer - addResourceHandlers() function get loaded...");
registry.addResourceHandler("/resources/static/**")
.addResourceLocations("/resources/");
registry
.addResourceHandler("/js/**")
.addResourceLocations("/js/")
.setCachePeriod(3600)
.resourceChain(true)
.addResolver(new GzipResourceResolver())
.addResolver(new PathResourceResolver());
}
}
XML配置
<mvc:annotation-driven />
<mvc:resources mapping="/staticFiles/path/**" location="/staticFilesFolder/js/"
cache-period="60"/>
如果文件位于WAR的webapp / resources文件夹中,则为Spring Boot MVC静态内容。
spring.mvc.static-path-pattern=/resources/static/**