Spring Boot Web态资源映射
一、Spring Boot对静态资源映射
1.我们Sprint Boot静态资源放在什么位置?
2.根据Sprint Boot自动配置原理
xxxAutoConfiguration:给容器中自动配置组件
xxxProperties:配置类封闭配置文件的内容
3.我们打开WebMvcAutoConfiguration.java找到addResourceHandlers方法
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
logger.debug("Default resource handling disabled");
} else {
Duration cachePeriod = this.resourceProperties.getCache().getPeriod();
CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();
if (!registry.hasMappingForPattern("/webjars/**")) {
this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{"/webjars/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/webjars/"}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
}
String staticPathPattern = this.mvcProperties.getStaticPathPattern();
if (!registry.hasMappingForPattern(staticPathPattern)) {
this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));
}
}
}
1).我们可以看到关键字,静态资源可以放在下面的位置:
/webjars/**
classpath:/META-INF/resources/webjars/
2).我们看代码还有一个添加资源映射方法我们点路径进去看一下
我看到“/**”这个路径,这个表示访问所有目录,然后我们回到WebMvcAutoConfiguration.java继续看下面代码,也是一直点进去
我们可以看到它指定了这些路径,所以静态资源文件夹还有如下位置
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/"
4.欢迎页面映射
注:静态资源文件夹下面所以的index.html页面
5.图标映射
注:静态资源文件夹下面所以的favicon.ico
6.配置文件也可以修改静态文件夹路径
spring.resources.static-locations=classpath:/hello/,classpath:/luoruiyuan/
二、总结
静态资源文件夹:
classpath:/META-INF/resources/ |
classpath:/resources/ |
classpath:/static/ |
classpath:/public/ |
/ |
/webjars/** |
classpath:/META-INF/resources/webjars/ |
配置文件定定义 spring.resources.static-locations= |
注:静态文件夹都是从项目resources开始的
赞(1)
赏