spring boot基础学习之(二)静态资源存放的位置?为什么该存放在这?从spring boot底层代码进行剖析(webjars)
创始人
2025-06-01 19:06:54
0


执着有时是一种错误,放弃有时也是一种美丽。


在架构有很多位置可以放置静态资源可以被访问到,位置不同使它们被访问的优先级顺序也有不同,接下来我们将通过spring boot配置的底层代码进行剖析。

第一个类:WebMvcAutoConfiguration

这个类实现实现的功能有很多,这里就不统一一一进行介绍,只讲解我们需要了解的配置

 静态资源配置类

 路径一:用户自己设置(在配置文件设置访问静态资源)

 如果在配置文件进行了新的配置,那么他就会执行上面的if语句:代码的内容的大体意思就是判断是否能够检测到配置文件中的新的路径配置,如果检测到了,那么就会输出Default resource handling disabled 语句,返回值是一个空值,系统默认就会从新配置路径下进行静态资源的访问。

配置用户访问的路径,创建一个新的文件夹,作为静态资源存放数据的目录,并创建一个js文件看看前端用户能不能访问的到

静态资源目录

在application.yaml配置文件进行静态资源目录进行配置

 几行代码则就表明,web静态的资源目录设为classpath路径下的templates,接下来就是访问目录下创建的demo1.html

网页查看该资源,成功输出,表明静态资源目录设置成功。

在没有上面的配置时,访问一个普通文件看能不不能被访问?

在static目录下创建一个网页文件

去网页访问该文档,看看能不能被访问到? 

 文件正常输出,这是在没有进行上面application.yaml配置文件进行配置时,能够被访问,那如果进行静态资源目录的配置后,该文件还能被访问到吗?答案是否定的

 那该目录下的文件能够被访问,那么其他路径下的资源还能被访问到吗?答案是否定的

那么为什么就加了一个配置文件的路径就不能访问了呢?

因为在默认路径它是/**这样的,如果前端用户要去访问,它就会从/目录下开始向下进行寻找,而静态资源原本就在/目录的下面,那么该静态资源自然而然就能够被访问到,但是当我们修改静态目录为其他的文件,那如果用户想要访问的静态资源不在我们设置的静态目录下,那么用户想要访问的静态资源就会查询不到,就会出现上面的页面。

那么默认的静态资源搜索是在哪里呢?

打开类二:WebMvcProperties.java

假设这个类是一个实体类,那么类中的内容都是属性,就是在配置文件application.yaml中进行属性值的注入,默认设置的路径是在/的下面,当然我们也可以进行属性值的注入,去修改用户访问静态资源路径。在配置文件中进行配置。

除了默认的路径还有spring boot项目中默认的几个路径,只要是存在这几个路径下的文档就一定能被用户访问到。

路径在WebProperties.java中配置文件中有设置

 就是上面那四个路径,只要在这几个目录下的静态资源都能被访问到,但是有一点要注意到,那就是当几个目录下存在名字和类型都相同的文件时,不通过目录下的资源优先级顺序不同

看看不同路径的静态资源能不能被前端用户访问到?在上面的四个路径下,创建不同的网页文件,看是否能被访问到?

创建资源文件

 访问结果:

 四个文件都能够被输出,表明四个目录是spring boot能够识别的路径

接下来就是如果四个文件夹下出现相同的静态资源那谁先会被访问呢?

 优先级NO.1

 优先级NO.2

 

优先级NO.3 

 优先级NO.4

 优先级顺序为:

META-INF/resources 》resources》static》public

其实呢,访问路径不光只有这几个?还有一个那就是webjars

Webjars本质就是以jar包的方式引入我们的静态资源 , 我们以前要导入一个静态资源文件,直接导入即可。

使用SpringBoot需要使用Webjars,我们可以去搜索一下:网站:https://www.webjars.org

首先导入依赖:以jquery为例

        org.webjarsjquery3.6.4

 

 依赖被成功导入,接下来我们要尝试尝试看看能不能访问到webjars中的静态文件,就以jquert.js为例,看看能不能被访问到?

 成功被访问,说明这也是一个能够被访问的静态资源目录

相关内容

热门资讯

保存时出现了1个错误,导致这篇... 当保存文章时出现错误时,可以通过以下步骤解决问题:查看错误信息:查看错误提示信息可以帮助我们了解具体...
汇川伺服电机位置控制模式参数配... 1. 基本控制参数设置 1)设置位置控制模式   2)绝对值位置线性模...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
表格中数据未显示 当表格中的数据未显示时,可能是由于以下几个原因导致的:HTML代码问题:检查表格的HTML代码是否正...
本地主机上的图像未显示 问题描述:在本地主机上显示图像时,图像未能正常显示。解决方法:以下是一些可能的解决方法,具体取决于问...
表格列调整大小出现问题 问题描述:表格列调整大小出现问题,无法正常调整列宽。解决方法:检查表格的布局方式是否正确。确保表格使...
不一致的条件格式 要解决不一致的条件格式问题,可以按照以下步骤进行:确定条件格式的规则:首先,需要明确条件格式的规则是...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...