静态资源可以在哪里找呢?我们看看源码
从这个类进去
里面有个静态类
WebMvcAutoConfigurationAdapter
有个配置类,将这个类的对象创建并导入IOC容器里
这个静态类下有个方法
addResourceHandlers(ResourceHandlerRegistry registry)静态资源处理器
若自动配置了,就不生效,否则就往下走,若是webjars/**这个文件夹下不存在,则去添加静态资源到webjars/**下,这个东西添加在哪个位置呢
这里又引出了一个问题
什么是webjars
Maven依赖
<dependency>
<groupId>org.webjars.npm</groupId>
<artifactId>jquery</artifactId>
<version>3.4.1</version>
</dependency>
输入/webjars/**路径会被映射到类路径下
classpath:/META-INF/resources/webjars/
jar包会放入类路径下,放一起,找到这个静态资源
这是第一种拿到静态资源的方式
二、第二种拿静态资源的方式
它里面有/**代表下面所有的静态资源都会映射到这四个路径下
项目优先级 resources>static>public
resources优先级最高 可以放入 图片那种唯一的,图片去取 或者上传的文件,核心
static 就放网页 html ,或者一些图片。较核心
public就放js css 公开
一段404的日志,可以看到springboot查找静态资源的目录默认包含:
classpath:/** 会映射去下面四个目录里面去寻找文件,来进行静态资源的访问
-
classpath [META-INF/resources/]
-
classpath [resources/]
-
classpath [static/]
-
classpath [public/]
-
ServletContext [/] servlet这个根目录,挺里面的