欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot自定义静态资源访问

程序员文章站 2022-07-10 20:21:26
...

springboot 静态资源位置,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,默认资源放在这几个目录下,是可以访问的,但是项目中往往需要自己定义静态资源加载的位置,这个时候就需要我们进行配置或者在项目中加一个配置类解决这个需求问题。

1、在配置文件中进行配置

配置访问静态资源请求路径
spring.mvc.static-path-pattern=/basedata/**
配置自定义静态资源存储位置,这样配置之后默认静态资源访问就不生效了
spring.resources.static-locations=file:./basedata/

该配置项也可以配置成数组形式 举例如下
自定义静态资源存储位置,可以用 ${}代替值
web.source.unzip=/aiplatformadmin/AI3.1/upload/audio/

spring.resources.static-locations[0]=classpath:/public/
spring.resources.static-locations[1]=classpath:/static/
spring.resources.static-locations[2]=classpath:/resources/
spring.resources.static-locations[3]=classpath:/META-INF/resources/
spring.resources.static-locations[4]=file:${web.source.unzip}
通过举例配置,这样默认静态资源位置和自定义静态资源都可以访问

2、代码中进行配置

@Configuration
public class MyConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/basedata/**").addResourceLocations("file:" + "."+ File.separator+"basedata"+File.separator);
    }
}

addResourceHandler 这个方法是配置资源请求路径
addResourceLocations 这个方法是配置自定义静态资源存储位置,里边用到了file:,是因为资源放置位置不在classpath下边,是自定义的,也可以写为classpath:

效果展示:

项目结构:

springboot自定义静态资源访问

访问结果展示:

springboot自定义静态资源访问