1、发现问题
在项目开发中,或许我们需要存放相关静态资源到springboot 项目中,我们一般都习惯存放在 resources/static 目录下,通过http://localhost:8080/ 静态资源路径 即可访问,但在多个模块时,已 jar的方式引入了静态资源,但我们想对该静态资源内容进行修改,如改文件是 js的config 配置文件,需要修改接口请求地址,秘钥等信息, 会在当前静态资源路径创建一个相同的文件,以此覆盖引入的静态资源,结果发现并没有生效,还是读取的引入的jar 中的文件,并没有读取当前模块中的静态资源
2、处理方法
在 Resourceproperties.calss 源码中,我们可以发现静态资源默认读取路径不止一个
优先级分别如下: 1 -> 2 -> 3 -> 4
- 优先级1: classpath:/META-INF/resources/
- 优先级2:classpath:/resources/
- 优先级3:classpath:/static/
- 优先级4:classpath:/public/
如果重写了 WebMvcConfigurer 下的 addResourceHandlers方法
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler(new String[]{"/**"}).addResourceLocations(new String[]{"classpath:/META-INF/resources/", "classpath:/resources/", "classpath:/static/", "classpath:/public/"});
}
复制代码
3、处理结果
引入的jar 静态资源一般都是在 static 目录下的,我们在 resources 目录下的相同目录创建相同的文件,就可以覆盖 原文件了。是不是很 nice
-
个人开源项目(通用后台管理系统)–> https://gitee.com/wslxm/spring-boot-plus2 , 喜欢的可以看看
-
本文到此结束,如果觉得有用,动动小手点赞或关注一下呗,将不定时持续更新更多的内容…,感谢大家的观看!
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END