SpringBoot配置静态资源访问

默认的静态资源映射

Spring Boot中的Spring MVC模块利用ResourceHttpRequestHandler来处理静态内容,对静态资源的映射提供了默认的配置。默认情况下,SpringBoot按如下优先级,从上到下将 /** 所有的资源访问映射到以下目录:

classpath:/META-INF/resources/ 
classpath:/resources/
classpath:/static/ 
classpath:/public/
/:当前项目的根路径

自定义静态资源访问路径

比如上传的图片一般放在磁盘的某个目录里,需要把静态资源的访问路径映射到磁盘的某个目录里。

编码的方式实现

这种方式比较灵活,可以同时设置多个静态资源访问路径映射到多个静态资源目录。

在Spring Boot 2.x的版本中使用的是Spring5,WebMvcConfigurerAdapter已经过时,可以直接实现WebMvcConfigurer接口,或者继承WebMvcConfigurationSupport 类来代替,都要实现addResourceHandlers()方法。

addResourceHandler:添加URL响应地址目录。

addResourceLocations:添加实际资源目录。

@Configuration
public class MyWebMvcConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        //保留默认的配置
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/META-INF/resources/", "classpath:/resources/",
                        "classpath:/static/", "classpath:/public/");
        //将所有E:/job/training/upload/目录下的资源,注意路径后一定要加/,访问时都映射到/image/** 路径下
        registry.addResourceHandler("/image/**")
                .addResourceLocations("file:E:/job/training/upload/");
        //可以继续添加新的映射路径
    }
}

配置文件的方式

#自定义的属性,指定了一个路径,注意要以/结尾
web.upload-path=F:/resources/
 
#表示所有的访问都经过静态资源路径
spring.mvc.static-path-pattern=/res/**
 
#配置所有的静态资源路径,要将默认的也加上否则static、public等这些路径将不能被当作静态资源路径.末尾是我们自己的自定义资源路径
spring.web.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${web.upload-path}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值