静态资源存放的位置

存放的四个位置

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

如果要访问的话,是当前项目的根路径+静态资源名。
在这里插入图片描述
在这里插入图片描述
因为这个图片的名称是favicon.ico,因此在访问网站的时候,在页面的左上角,会出现一个小图标。
在这里插入图片描述
原理: 静态映射/**。
请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应404页面,因此,如果请求和静态资源同名的话,先处理请求。

优先级

优先级:resources>static>public
我们可以在resources根目录下新建对应的文件夹,都可以存放我们的静态文件;

比如我们访问 http://localhost:8080/1.js , 他就会去这些文件夹中寻找对应的静态资源文件;

静态资源在这四个路径下的原因。

SpringBoot启动默认加载 xxxAutoConfiguration 类(自动配置类)。SpringMVC功能的自动配置类 WebMvcAutoConfiguration生效
在这里插入图片描述
在这里插入图片描述
给容器中配置了下面这个组件
在这里插入图片描述
配置文件的相关属性和xxx进行了绑定。WebMvcProperties=spring.mvc,ResourceProperties=spring.resources
点开WebProperties,我们会发现其中的静态的静态的资源路径已经默认的给配好了。
在这里插入图片描述
不过我们可以会静态资源的默认路径进行更改。

自定义静态资源路径

我们也可以自己通过配置文件来指定一下,哪些文件夹是需要我们放静态资源文件的,在application.properties中配置:
在这里插入图片描述
在这里插入图片描述
一旦自己定义了静态文件夹的路径,原来的自动配置就都会失效了!

静态资源访问前缀的问题

这在springboot中同样是有默认配置的。
点开WebMvcProperties,在其中我们可以找到下面这个属性
在这里插入图片描述
因此在springboot中是没有配置访问前缀的,我们可以自己配置。
在这里插入图片描述
在这里插入图片描述
当前项目 + static-path-pattern + 静态资源名 = 静态资源文件夹下找,在这里修改了静态资源的访问位置和访问前缀,我们是可以是可以访问的,但是如果是访问欢迎页的话,是可能出现错误的。
没有加前缀的情况下。
在这里插入图片描述
在这里插入图片描述
加了前缀的情况下。
在这里插入图片描述
是访问不了欢迎页的。
我们来看看其中的原因。
点开WebMvcAutoConfiguration这个类,我们可以找一下处理欢迎页请求的Handlermapping。
在这里插入图片描述
点开WelcomePageHandlerMapping,我们可以看到在这个类的代码中对是否请求欢迎页进行了判断。
在这里插入图片描述
从第一个if我们可以看出来,一旦我们修改了前缀的话,就不会访问到欢迎页了。

关于webjar的一些知识。

springboot已经配置了当我们访问为jar包的时候,会自动映射 /webjars/**这个路径。
在这里插入图片描述
我们可以在后面直接访问。
http://localhost:8080/webjars/jquery/3.5.1/jquery.js
在这里插入图片描述
上面的自动映射在源码中也已经写好了。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值