Learn from:尚硅谷
静态资源的访问
我们从官方的文档中可以得知,只要静态资源存放于 /staticor /public or /resources or /META-INF/resources中我们就可以访问。
我们在static文件夹下存放一个图片为google.png
我们在网页中可以访问:
请求的流程原理
请求进来,首先分析我们自己定义的controller能不能处理该请求,如果可以处理,那么就用我们自己的controller来进行处理,如果不能处理的话,再使用静态资源处理器处理,如果静态资源处理器也不能处理,就会404
我们测试一下,这里我们将google.png作为我们自己定义的请求路径。
再次访问原来的请求就会输出一个Google。
静态资源目录前缀
我们还可以给静态资源添加一个前缀,让我们用网页请求的时候。必须添加这个前缀。
我们使用yaml来配置。这里的文件夹名可以是多层的。
spring:
mvc:
static-path-pattern: /res/**
当前项目 + static-path-pattern + 静态资源名 = 静态资源文件夹下找
我们将刚才定义的controller删掉,让我们的能访问到我们的静态资源google.png这张图片。
我们可以看到,我们加了前缀/res/才能访问该图片。
静态资源目录的修改
当我们的资源比较多的时候,比如我们的图片都放在了static/img/下,这时候我们就需要修改静态资源目录了。
修改前我们先将静态资源目录的前缀删掉。
spring:
web:
resources:
static-locations: classpath:/templates/,classpath:/static/img/
静态资源目录可以存在多个。修改后之前默认的静态资源目录就会失效。
修改后我们访问static里面的图片,且不存在与现在设置的静态资源目录中。
我们会发现访问失败。
# webjars
当我们需要使用jquery这种jar包的时候,我们可以使用webjars自动映射下载。
https://www.webjars.org/
找到Maven的依赖就可以下载了。
官方给我们的访问路径是/webjars/**
我们去jar包下面查看一下,符合我们的静态资源目录 META-INF/resources/**
这样我们就可以直接访问下面的文件了
http://localhost:8888/webjars/jquery/3.6.0/jquery.js
welcome 、 favicon
根据官方给出的文档,我们可以创建一个index.html文件放在静态资源目录下面。
这样我们访问的时候,只写上端口号就能进行访问了。
这里我修改了静态资源访问路径,并将index.html文件放在template文件夹下:
index.html里面的图片资源都放在/static/img/下面。
打开欢迎页,就会展示index.html
打开这个html文件,资源访问都是按照SpringBoot的标准来的
每个网页都有的小图片。
我们也可以给欢迎页设置。这里SpringBoot的说法是将一个名为favicon.ico的文件放在静态资源目录下就可以将网页的图标进行修改。
修改成功,如果修改失败,点F12关闭网页的缓存再打开试试看,不行就换个浏览器。
设置静态资源访问前缀会令favicon的功能失效