【springboot】静态资源访问路径配置

本文介绍了SpringBoot中关于静态资源访问的配置,包括默认映射的文件夹、如何通过`application.yaml`配置文件修改以及实现`WebMvcConfigurer`接口来自定义映射路径。默认的静态资源路径包括`classpath:/META-INF/resources`, `classpath:/resources`, `classpath:/static`, `classpath:/public`,按照优先顺序被访问。自定义路径可通过`addResourceHandler`和`addResourceLocations`方法实现。" 122730949,2626619,Spark 3.2 升级中遇到的包冲突及解决方案,"['Spark', '大数据', 'scala']

【springboot】静态资源访问路径配置

简介

springboot 默认为我们提供了静态资源处理,使用WebMvcAutoConfiguration中的配置各种属性。

在一般情况下,springboot提供的默认配置方式能够满足需求,如果想要完全控制WebMvc,那么就需要在@Configuration注解的配置类上增加@EnableWebMvc,这样WebMvcConfiguration中的配置就无法生效,所有配置都按照你自定义的进行生效。

但是,通常情况下,我们都是使用springboot的默认配置,如果想要增加自己的额外的配置的时候,就可以定义一个配置类(添加@Configuration的类)然后实现WebMvcConfigurer接口,进行重写其中的相应的方法就可以增加额外的配置

默认映射的文件夹

以下均为静态资源的映射路径

  1. classpath:/META-INF/resources

  2. classpath:/resources

  3. classpath:/static

  4. classpath:/public

优先顺序为:META-INF/resources>resources>static>public

自定义映射路径

application.yaml配置文件修改
# 默认值为 /**
spring.mvc.static-path-pattern=
# 默认值为 classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ 
spring.resources.static-locations=这里设置要指向的路径,多个使用英文逗号隔开,

实现WebMvcConfigurer接口

如果我们想要自定义静态资源映射目录的话,只需要重写addResourceHandlers方法即可

@Configuration
public class MyWebConfigurer implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/api/file/**")
                .addResourceLocations("file:D:/java/img/");
    }
}

上述例子是指定外部的目录,注意在addResourceLocations指定目录前面需要添加 file:


@Configuration
public class MyWebConfigurer implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/api/file/**")
                .addResourceLocations("classpath:/myResources/");
    }
}

以上例子是指定类路径下的myResources目录下


addResourceHandler 指的是对外暴露的静态资源访问路径

addResourceLocations指的是静态资源文件实际放置的目录

参考链接

Spring Boot 静态资源处理
Springboot中静态资源和拦截器处理(踩了坑)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值