springboot的web场景开发------简单功能分析
一、静态资源访问
1、静态资源目录
只要静态资源放在类路径下的规定文件的中,我们就能够直接通过当前项目根路径/静态资源名的方式直接访问
这些规定文件分别是
- static
- public
- resources
- META-INF/resource
举例示范
这里我们使用的静态资源为图片





全部成功访问到,
对此官方文档的说明如下
如果有Controller的请求路径和静态资源的访问路径重复了,那么会访问谁?
这里去掉前面自己设置的静态资源访问目录的映射,为了方便。
contoller的代码,如下

访问的http://localhost:8080/1.jpg的结果为

这是为什么呢?
其实就是一个优先级的问题。
因为我们静态资源处理器的映射设置的是/**,而我们的请求进来会先去找Controller的映射看可不可以处理,如果可以处理那么展示Controller的处理结果,如果不能处理就会交给静态资源处理器,静态资源处理器如果能够处理那么就展示处理的结果,如果不能处理那么404。
2、静态资源访问前缀
默认是无前缀的,我们为什么要设置访问前缀呢?
这时因为我们以后在做登录拦截的时候,如果拦截的路径是/**,这样我们的静态资源css、js这些都会被拦截,所以我们需要给这些静态资源设置一个前缀,然后设置不拦截以这个前缀为开头的请求。
官方文档的设置访问前缀介绍如下

官方文档解释了直接访问资源名能够成功的原因,因为springboot设置的默认的映射路径是/**这就是为什么我们能够直接请求到我们的静态资源。
当然我们也可以自己进行修改没只需要设置这个属性
spring.mvc.static-path-pattern=/resources/**
进行尝试

这里不全部尝试了,图片太多麻烦,访问第一个发现访问成功

3、自定义静态资源目录
application.ymal配置文件内容:

但是当我们配置这个之后,我们默认的包下的静态资源就无法访问了


将4.jpg放到haha文件中才能访问

访问成功

4、webjar
webjar的官网地址https://www.webjars.org/
这个webjar是什么呢?
其实就是我们的一些常用的js,它给弄成了一个jar的形式,我们可以直接导入依赖坐标,当我们导入对应的以来之后,它会进行自动映射

实际开发中并不常用
解释一下这个自动映射
当我们把jar导入到我们的项目之后,查看这个jar依赖的目录

它正好是我们能够自动识别的路径/META-INF/resources
官方文档的解释如下

我们只需要以/webjars/资源路径就能访问到我们的webjar依赖导入的静态资源了。
举例示范
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.6.0</version>
</dependency>
访问http://localhost:8080/webjars/jquery/3.6.0/jquery.js
访问成功

二、欢迎页支持
官方文档对欢迎页的功能说明

翻译如下:
springboot支持静态和模板化的欢迎页面。它首先寻找一个index.html配置的静态内容位置中的文件。如果找不到,它将查找索引模板。如果找到其中一个,它将自动用作应用程序的欢迎页面。
举例示范
静态资源路径下有index.html
因为此时我们的静态资源包设定的是haha,所以我们在haha下面添加一个index.html


然后访问根目录http://localhost:8080/

成功访问
三、自定义Favicon
这个就是自定义网页的小图标

就是这个,
查看官方文档

大致意思就是它会去我们的静态资源文件下去找名叫favicon.icod的这个图片来作为网页的小图标,但是我们在测试的时候遇到一个问题,就是重启了之后没有显示我们设置的网页小图片,这里我们将网页的小图标设置为和我们博客相同的小图标

这里我们不使用上面自定义的静态资源包,将那个配置注释掉了,使用默认的配置。
但是即使我们重启后刷新页面图标依旧不改变

我们的浏览器有缓存,当我们第一次访问我们的资源时的图标被缓存起来了,我们下次访问还是那个图标,我们只需要禁用缓存,然后关闭浏览器重新打开即可

这里我们选择使用火狐浏览器进行操作,不知道为什么谷歌浏览器禁用缓存也没有效果。。。
成功更改小图标


浙公网安备 33010602011771号