知识点:
1. 默认只要放在当前路径的/static (or /public or /resources or /META-INF/resources)这几个路径下都可以访问到
2. 改变静态资源路径访问前缀:
之后想要访问必须加上配置文件中的路径
SpringBoot如何知道需要访问的是静态资源而不是请求?
测试如下:
加入一个与静态资源名称相同的请求
结果:
可以看到请求进来,先去找Controller看能不能处理。不能处理的所有请求又都交给静态资源处理器。静态资源也找不到则响应404页面。
3. 改变默认静态资源路径
可以看到只能在hh文件夹中访问静态资源,而之前系统默认的几个文件夹已经失效了。
4. 欢迎页支持(打开SpringBoot的初始页面)
访问静态页面时需要注意到若是改变了静态资源访问前缀将会无法访问到
将此处配置屏蔽后:
页面可正常访问
5.webJars
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.5.1</version>
</dependency>v
自动映射 /webjars/xxx
https://www.webjars.org/
访问地址:http://localhost:8080/webjars/jquery/3.5.1/jquery.js 后面地址要按照依赖里面的包路径
Tips.
什么是webJars:
Web前端使用了越来越多的JS或CSS,如jQuery,Backbone.js和Bootstrap。一般情况下,我们是将这些Web资源拷贝到Java Web项目的webapp相应目录下进行管理。这种通过人工方式管理可能会产生版本误差,拷贝版本错误,漏拷等现象,导致前端页面无法正确展示,版本不一致,文件混乱等,导致出现一些莫名其妙的错误等。
WebJars是将web前端资源(js,css等)打成jar包文件,然后借助Maven工具,以jar包形式对web前端资源进行统一依赖管理,保证这些Web资源版本唯一性。WebJars的jar包部署在Maven中央仓库上。
6. 源码解析
SpringBoot启动默认加载xxxAutoConfiguration类,都在这个包下
SpringMVC功能的自动配置类是WebMvcAutoConfiguration
类中唯一的有参构造器:
资源处理规则 ,可在配置文件中设置add-mappings为false,则静态资源访问将被禁止
可在配置文件中设置缓存时间
设置过静态文件前缀后欢迎页无法访问的原因:
所以要使用欢迎页功能前缀 必须是/**