程序员社区

Spring Boot 配置静态资源映射器

       其实,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♪(・ω・)ノ

赞(0) 打赏
未经允许不得转载:IDEA激活码 » Spring Boot 配置静态资源映射器

一个分享Java & Python知识的社区