解决springboot|解决springboot 无法配置多个静态路径的问题
目录
- springboot 无法配置多个静态路径
- 需要在启动类里加一段代码如下:
- springboot静态路径配置遇到的坑
- 按照网上一些博客的说法
- 解决方法
springboot 无法配置多个静态路径 默认static路径是可以访问的,
【解决springboot|解决springboot 无法配置多个静态路径的问题】对接天猫精灵需要额外的放开一个目录aligenie,供天猫精灵端访问,且路径名称无法更改。
这就导致了一个问题,默认识别的静态路径META-INF/resources / resources / static / public 都是spring boot 认为静态资源应该放置的位置,会自动去寻找静态资源。无法识别aligenie路径。
需要在启动类里加一段代码如下:
@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/aligenie/**").addResourceLocations("classpath:/aligenie/"); }
springboot静态路径配置遇到的坑 用springboot做一个项目,遇到一个情况是前端要展示服务器保存的图片,这时候涉及到一个静态路径配置的问题,踩到了一个坑
因为springboot是自带tomcat的,所以我们没必要去改变自己tomcat的设置,只需要在properties.yml里进行配置或者继承WebMvcConfigurationSupport类去写一个配置类,其中yml配置的方法可以自行去找,网上一搜一大把,这里说下用配置类遇到的一个坑
按照网上一些博客的说法
@Configurationpublic class UploadConfiguration extends WebMvcConfigurationSupport {@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/upload/**")//这个将应用到url中.addResourceLocations("file:///"); //这里填的是图片的绝对父路径super.addResourceHandlers(registry); }}
这样跑了一下之后发现,虽然图片是可以直接通过url访问到了,但是html、js等其他静态资源(和图片不在同一个文件夹下)访问不到了...
解决方法
虽然现在大家都会前后端分离开发,不会遇到这样的问题,但是既然遇到了,还是得想办法解决一下的,初步猜测的话,是因为配置类覆盖了原来的默认静态路径,导致了新配置起效但是原来的访问不了的情况,所以我们再手动把原来的路径添加进来
@Configurationpublic class UploadConfiguration extends WebMvcConfigurationSupport {@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/**").addResourceLocations("file:///"); //这里是所有静态资源的父文件夹绝对路径,一般是webapps文件夹的路径super.addResourceHandlers(registry); registry.addResourceHandler("/upload/**")//这个将应用到url中.addResourceLocations("file:///"); //这里填的是图片的绝对父路径super.addResourceHandlers(registry); }}
这样问题就解决了!
最后再提一下,file:/// 这里的斜杠为什么是三条,网上有教程说是要进行转义,但是经过实测一条和三条都是没区别的,有点玄学~
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- Activiti(一)SpringBoot2集成Activiti6
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Spark|Spark 数据倾斜及其解决方案
- Android7.0|Android7.0 第三方应用无法访问私有库
- 解决SyntaxError:|解决SyntaxError: invalid syntax
- 无论你是谁,都有两件事,无法掌控