springboot如何获取相对路径文件夹下静态资源的方法

网友投稿 842 2023-01-07


springboot如何获取相对路径文件夹下静态资源的方法

今日遇到一个问题:springboot需要获取到一个自定义名称文件夹下的静态资源(图片等),并且文件夹的路径不在classPath下面,而是一个相对路径。

一开始使用修改配置文件的方式:

# 配置静态资源访问前缀

spring.mvc.static-path-pattern=*/**

# 配置静态资源路径,默认配置失效

spring.resources.static-locations=../upload

发现并不行,无法解析出相对路径。

后面通过自定义静态资源映射配置类实现了:

@Configuration

@EnableConfigurationProperties({ FileHanderProperties.class })

public class FileHandleConfig extends WebMvcConfigurerAdapter {

@Autowired

private FileHanderProperties fileHanderProperties;

@Override

public void addRehttp://sourceHandlers(Resourhttp://ceHandlerRegistry registry) {

registry.addResourceHandler(fileHanderProperties.getResource())

.addResourceLocations("file:" + fileHanderProperties.getFileDir()+"//");

super.addResourceHandlers(registry);

}

}

通过自定义的配置文件读取类fileHanderProperties获取配置的参数,这样就可以获取到相对路径中的静态资源了。在浏览器中直接输入url,就可以得到图片。

关键点:

1.addResourceLocations 里面要加前缀"file:" ,这样才能获取到自定义目录下的文件。用"classpath:"只能获取到classpath下的资源;

2.静态资源访问前缀 (即addResourceHandler内的参数)要写成*/**,这样才可以获取到upload文件夹下所有的文件(包括upload文件夹里面的文件夹如imgupload里的资源,只要在url里多加/imgupload),而且在url输入的时候可以不用写upload (如果你想写,就把前缀改为 upload/** ,这样就必须在url里写上upload才能获取到资源);


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:自学抓包接口测试(抓包和接口测试有什么区别)
下一篇:java实现接口的作用(java实现接口的作用是什么)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~