关于SpringBoot Web静态资源储存位置的问题

OK,总所周知,在SSM框架中,是有一个webapp文件夹用来装静态资源的,图片啦js拉页面拉都在里面,可是到了SpringBoot…
在这里插入图片描述
好像就只剩下了这一个,那么我们的静态资源到底可以丢在那边呢?又到了喜闻乐见的扒拉源码的环节。

因为是整合了web包,所以我们找到WebMvcAutoConfiguration
这个类(WebMvc自动装配)
打开后是这样的
在这里插入图片描述
加了Bean注解的肯定是交给spring的bean对象了,应该没有配置方面的信息,我们往下翻,找到一个叫WebMvcAutoConfigurationAdapter
的静态类
在这里插入图片描述
可以看到有很多配置的属性,而且它导入了记录了默认配置的class,应该没错,继续往下找到addResourceHandlers方法
(添加资源管理器)
在这里插入图片描述
第一个if写的应该是如果进行了配置,那么默认配置失效,我们没配置,不用管他
在这里插入图片描述

第二个if里面写了个/web.jars/**
在这里插入图片描述
这个应该是注册了web.jars目录下的东西,但是我们的主目录里面没有web.jars这目录,那咋整呢?先查一下这是啥玩意吧
在这里插入图片描述
打开官网
在这里插入图片描述
反正进来先找认识的,这些应该都是jar包,还有这个maven的标志,点一下发现还真是
在这里插入图片描述
直接导入一个jquery试试,导入后打开maven包看看
在这里插入图片描述

还真有个META-INF
在这里插入图片描述
所以
/webjars/**
应该是代表了classpath:/META-INF/resources/webjars/
目录下的所有文件也就是

这下面的一堆,我们直接打开服务访问下试试
注意,/webjars/只到了webjars目录,下面的jquery和3.5.1要自己输入
在这里插入图片描述
访问成功,这应该是就是第二个if表达的意思,但是我们的资源不可能这么麻烦吧。我们看第三个if
在这里插入图片描述
这个字符串表示的东西就是/**整个目录
在这里插入图片描述
在这里插入图片描述
下面的这个位置又调用了一个
addResourceLocations方法(添加资源位置)
我们点进这个方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后我们找到了四个地址
在这里插入图片描述
第一个地址就是第二个if里面的META-INF,下面的三个分别是文件目录的resources,static以及public
而且我们的resources目录中是默认存在一个static的,我们丢个文件进去测试下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
果然,只要是访问静态资源,他就会去这里面找
那么我们来测试一下优先级。或者说看他会不会报错,把另外两个文件夹建好,js起一模一样的名字
在这里插入图片描述
在这里插入图片描述
再次进行访问
最终测试的结果就是
resources>static>public

当我们修改默认配置
在这里插入图片描述
再次访问
在这里插入图片描述
报错了。

终于写完了,摸了摸了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值