SpringBoot-05——【SpringBoot访问静态资源源码解析、webjars的使用】

7、SpringBoot静态资源访问

要了解的是springboot打包是以jar包的形式打包运行的、那静态资源(css、js…)这些资源放在什么地方

盲猜这个地方
在这里插入图片描述

我们可以打开web的自动装配来看一下自动装配的资源路径访问地址在什么地方

WebMvcAutoConfiguration类中的一个内部类WebMvcAutoConfigurationAdapter类中的addResourceHandlers方法:字面意思添加资源处理器

在这里插入图片描述

可以分为三个部分、来说

**第一部分:**在yml中配置isAddMappings属性的值为false、表示默认处理器被禁用

第二部分和第三部分是资源放入的地方

第二部分

7.1、webjars的使用

什么是webjars、简单来说就是将资源打包成jar包、如何导入maven项目管理、由maven管理着、

webjars的官网

在这里插入图片描述

进入官网可以看出有一个maven的选项、我们选择这个就会看下对应的pom依赖坐标

假如我们使用jquery

<dependency>
    <groupId>org.webjars.bower</groupId>
    <artifactId>jquery</artifactId>
    <version>3.5.1</version>
</dependency>

将这个导入到项目中、我们找到他的位置
在这里插入图片描述

现在来看第二部分
在这里插入图片描述
第二部分主要的作用就是网址访问http://localhost:8080/webjars/xxxxx不管后面是什么请求、都会去找到classpath:/META-INF/resources/webjars/下的资源、如果文件下有这个资源将其资源显示、没有资源将其到错误页面。

访问一下刚刚导入的jquery.js文件
js
可以看出可以访问到、

为什么能访问到?
在这里插入图片描述

因为项目中可以找到这个地方、这个地方有资源

因此我们在html中可以这样引入静态资源

<link th:href="@{/webjars/jquery/3.5.1/dist/jquery.js}" rel="stylesheet"></link>

第三部分

7.2、SpringBoot默认静态资源位置

在这里插入图片描述

看这个第三部分、发现第三部分的操作和第二部分操作是一样的、只是参数不一样

在这里插入图片描述

值说明
staticPathPattern = /**

this.resourceProperties.getStaticLocations() = "classpath:/META-INF/resources/","classpath:/resources/", "classpath:/static/", "classpath:/public/"

解释:

  • 那第二部分做比较就是我们访问http://localhost:8080/webjars/**他会去classpath:/META-INF/resources/webjars/这些文件目录下去寻找请求对应的正确资源

  • 那么第三部分就是http://localhost:8080/**不管什么请求、他会去"classpath:/META-INF/resources/","classpath:/resources/", "classpath:/static/", "classpath:/public/"这些文件目录下去寻找请求对应的正确资源

问题:

  • 这些是什么地方的文件
"classpath:/META-INF/resources/",
"classpath:/resources/", 
"classpath:/static/", 
"classpath:/public/"

在这里插入图片描述

我们项目中的resources下、这四个地方寻找资源、

访问localhost:8080/a.js

在这里插入图片描述

可以得到a.js中的内容、这4的地方我们都有一个a.js怎么办???

在这里插入图片描述

测试过后

如:从高到低

META-INF/resources > resources > static > public

总结:在SpringBoot中、有两种资源存放路径方式、webjars、和SpringBoot默认的资源存放路径、webjars可以不使用、我们使用SPringBoot默认的资源存放地址resources文件下存放静态资源

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值