其实,Spring Boot 框架已经对 js、css 等静态资源做了映射规则。默认情况下,它会去如下的 5 个目录中去找。关于 Spring Boot 对静态资源映射规则的介绍,你可以参考博主这篇文章:Spring Boot 对 js、css 等静态资源的映射规则
1."classpath:/META-INF/resources/"
2."classpath:/resources/"
3."classpath:/static/"
4."classpath:/public/"
5."/":当前项目的根路径 我们将这5个路径,称之为 SpringBoot 规定的默认静态资源文件夹
我们也可以通过修改静态资源路径的方式,来满足项目的开发,有以下 2 种方式来修改静态资源路径。切记:自定义静态资源文件夹后, Spring Boot 默认为我们提供的静态资源文件夹就会失效。
1.通过全局配置的方式修改
本例以 applicaiton.properties 为例,添加如下两个配置:(不建议再配置成Spring Boot 默认路径,没意义)
# 设置静态资源访问路径
spring.mvc.static-path-pattern=/asserts/**
# 设置静态资源所在路径(多个路径以逗号分隔)
spring.resources.static-locations=classpath:/files
2.添加静态资源映射器的方式修改
新建一个类,添加@Configuration
注解,标注该类是一个配置类,然后通过@Bean
的方式,将该组件注册到 Spring 容器中生效。
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {
//使用如下这种方式,可以让所有的WebMvcConfigurerAdapter组件都会一起起作用
@Bean //将组件注册在容器
public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){
WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
/** * 添加静态资源映射器 * @param registry */
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
super.addResourceHandlers(registry);
registry.addResourceHandler("/asserts/**").addResourceLocations("classpath:/files");
}
};
return adapter;
}
配置完成后,我们就可以在 html 页使用配置的路径来访问静态资源了。根据以上配置,我们可以使用这种请求<link href="/asserts/bootstrap.min.css>
,来获取项目files
目录下的bootstrap.min.css 文件。链接中设置读取 asserts 目录,实则是去读 files 目录下的文件
Thymeleaf 版
在 Spring Boot 中,如果使用 Thymeleaf 模板引擎,你也可以使用 <link th:href="@{/asserts/bootstrap.min.css}">
这种方式来引入。理论上Spring Boot 已经为我们做了静态资源映射,如果没有必要,还是不建议大家去修改。
博主写作不易,来个关注呗
求关注、求点赞,加个关注不迷路 ヾ(◍°∇°◍)ノ゙
博主不能保证写的所有知识点都正确,但是能保证纯手敲,错误也请指出,望轻喷 Thanks♪(・ω・)ノ