springboot中配置外部文件夹以及文件可访问
此项目环境为Linux,Windows环境下的配置略有不同。下面代码有标记
1.配置文件配置 application.yml
spring:
mvc:
#静态资源映射访问路径
static-path-pattern: /**
resources:
#静态资源所在目录
static-locations: file:${file.uploadFolder},classpath:/static/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
#静态资源对外暴露的访问路径
#文件上传目录(注意Linux和Windows上的目录结构不同)
#uploadFolder: classpath:/static/
file:
staticAccessPath: /static/**
uploadFolder: /media/peter/Data/dev/bisonSpace/bison-web-service/bison-service-product/target/static/
项目中application.yml配置文件中,存在如上配置项时,访问静态资源文件要加static才行,当把这个配置项除掉时,不用加static作为前缀亦可进行正常访问。
-
代码配置
@Configuration //配置类注解 public class UploadFilePathConfig extends WebMvcConfigurationSupport { @Value("${file.staticAccessPath}") private String staticAccessPath; @Value("${file.uploadFolder}") private String uploadFolder; @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { //staticAccessPath:/static/** //"file:" + uploadFolder:/media/peter/Data/dev/bisonSpace/bison-web-service/bison-service-product/target/static/ //如果是Windows环境的话 file:=改为=》file:/// registry.addResourceHandler(staticAccessPath).addResourceLocations("file:" + uploadFolder); super.addResourceHandlers(registry); } }
-
访问演示
在idea中的编译后的target中的路径
蓝色标记的static的实际路径即为:/media/peter/Data/dev/bisonSpace/bison-web-service/bison-service-product/target/static/ -
实际服务器部署后的结构为: