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/

注:webjars使用方法

2).我们看代码还有一个添加资源映射方法我们点路径进去看一下

06

07

08

我看到“/**”这个路径,这个表示访问所有目录,然后我们回到WebMvcAutoConfiguration.java继续看下面代码,也是一直点进去

09

10

11

我们可以看到它指定了这些路径,所以静态资源文件夹还有如下位置

"classpath:/META-INF/resources/",
 "classpath:/resources/",
"classpath:/static/", 
"classpath:/public/" 
"/"

4.欢迎页面映射

12

注:静态资源文件夹下面所以的index.html页面

5.图标映射

13

注:静态资源文件夹下面所以的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开始的

14






(1)