springboot对静态资源的映射

springframework.boot:spring-boot-autoconfigure下的 web模块,先来看ResourceProperties

再来看 web模块下的WebMvcAutoConfiguration

 

由上图464-468行可知

1)、所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源;

看470 添加了一个静态路径staticPathPattern

String staticPathPattern = this.mvcProperties.getStaticPathPattern();去mvcProperties看看这个StaticPathPattern

表示任意请求

再看471,472行 如果找不到对应的映射,则

String staticPathPattern = this.mvcProperties.getStaticPathPattern();
                if (!registry.hasMappingForPattern(staticPathPattern)) {
                    this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(this.resourceProperties.getStaticLocations()).setCachePeriod(cachePeriod));
                }
addResourceLocations(this.resourceProperties.getStaticLocations())跟踪resourceProperties发现
private String[] staticLocations;的值是
static {
        RESOURCE_LOCATIONS = new String[CLASSPATH_RESOURCE_LOCATIONS.length + SERVLET_RESOURCE_LOCATIONS.length];
        System.arraycopy(SERVLET_RESOURCE_LOCATIONS, 0, RESOURCE_LOCATIONS, 0, SERVLET_RESOURCE_LOCATIONS.length);
        System.arraycopy(CLASSPATH_RESOURCE_LOCATIONS, 0, RESOURCE_LOCATIONS, SERVLET_RESOURCE_LOCATIONS.length, CLASSPATH_RESOURCE_LOCATIONS.length);
    }

也即

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

注意:classpath是指src.main.java或者src.main.resouces

2)、"/**" 访问当前项目的任何资源,都去(静态资源的文件夹)找映射,以上四个都是静态资源的文件夹

localhost:8080/abc === 去静态资源文件夹里面找abc

3)、欢迎页; 静态资源文件夹下的所有index.html页面;被"/**"映射;
localhost:8080/ 找index页面
4)、所有的 **/favicon.ico 都是在静态资源文件下找;

 

如果在使用springboot时,想要改变默认的这几个文件夹路径,只需在application.properties中更改即可:

spring.resources.staticLocations=classpath:/hello/,classpath:/world/

(多个文件夹的时候用逗号隔开即可,因为)staticLocations本身定义的就是一个数组

 

 

 

 

PS:

WebJars是一个很神奇的东西,可以让大家以jar包的形式来使用前端的各种框架、组件。

什么是WebJars

什么是WebJars?WebJars是将客户端(浏览器)资源(JavaScript,Css等)打成jar包文件,以对资源进行统一依赖管理。WebJars的jar包部署在Maven中央仓库上。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值