解决springboot 无法配置多个静态路径的问题

 更新时间:2021年08月20日 10:26:37   作者:新手帮  
这篇文章主要介绍了解决springboot 无法配置多个静态路径的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot 无法配置多个静态路径

默认static路径是可以访问的,

对接天猫精灵需要额外的放开一个目录aligenie,供天猫精灵端访问,且路径名称无法更改。

这就导致了一个问题,默认识别的静态路径META-INF/resources / resources / static / public 都是spring boot 认为静态资源应该放置的位置,会自动去寻找静态资源。无法识别aligenie路径。

需要在启动类里加一段代码如下:

@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
                registry.addResourceHandler("/aligenie/**").addResourceLocations("classpath:/aligenie/");
    }

springboot静态路径配置遇到的坑

用springboot做一个项目,遇到一个情况是前端要展示服务器保存的图片,这时候涉及到一个静态路径配置的问题,踩到了一个坑

因为springboot是自带tomcat的,所以我们没必要去改变自己tomcat的设置,只需要在properties.yml里进行配置或者继承WebMvcConfigurationSupport类去写一个配置类,其中yml配置的方法可以自行去找,网上一搜一大把,这里说下用配置类遇到的一个坑

按照网上一些博客的说法

@Configuration
public class UploadConfiguration extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**")//这个将应用到url中
                .addResourceLocations("file:///");//这里填的是图片的绝对父路径
        super.addResourceHandlers(registry);
    }
}

这样跑了一下之后发现,虽然图片是可以直接通过url访问到了,但是html、js等其他静态资源(和图片不在同一个文件夹下)访问不到了...

解决方法

虽然现在大家都会前后端分离开发,不会遇到这样的问题,但是既然遇到了,还是得想办法解决一下的,初步猜测的话,是因为配置类覆盖了原来的默认静态路径,导致了新配置起效但是原来的访问不了的情况,所以我们再手动把原来的路径添加进来

@Configuration
public class UploadConfiguration extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("file:///");//这里是所有静态资源的父文件夹绝对路径,一般是webapps文件夹的路径
        super.addResourceHandlers(registry);
        registry.addResourceHandler("/upload/**")//这个将应用到url中
                .addResourceLocations("file:///");//这里填的是图片的绝对父路径
        super.addResourceHandlers(registry);
    }
}

这样问题就解决了!

最后再提一下,file:/// 这里的斜杠为什么是三条,网上有教程说是要进行转义,但是经过实测一条和三条都是没区别的,有点玄学~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java实现删除排序链表中的重复元素的方法

    Java实现删除排序链表中的重复元素的方法

    这篇文章主要介绍了Java实现删除排序链表中的重复元素的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • SpringMVC注解之@ResponseBody注解原理

    SpringMVC注解之@ResponseBody注解原理

    今天带大家分析一下@ResponseBody注解原理,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • java javax.annotation.Resource注解的详解

    java javax.annotation.Resource注解的详解

    这篇文章主要介绍了javax.annotation.Resource注解的详解的相关资料,需要的朋友可以参考下
    2016-10-10
  • Spring JPA deleteInBatch导致StackOverflow问题

    Spring JPA deleteInBatch导致StackOverflow问题

    这篇文章主要介绍了Spring JPA deleteInBatch导致StackOverflow问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • SpringBoot之HandlerInterceptor拦截器的使用详解

    SpringBoot之HandlerInterceptor拦截器的使用详解

    这篇文章主要介绍了SpringBoot之HandlerInterceptor拦截器的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • TC 集群Seata1.6高可用架构源码解析

    TC 集群Seata1.6高可用架构源码解析

    这篇文章主要为大家介绍了TC 集群Seata1.6高可用架构源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • Java mybatis常见问题及解决方案

    Java mybatis常见问题及解决方案

    这篇文章主要介绍了Java mybatis常见问题及解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • SpringBoot深入讲解单元测试与热部署应用

    SpringBoot深入讲解单元测试与热部署应用

    这篇文章介绍了SpringBoot单元测试与热部署,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • spring-security关闭登录框的实现示例

    spring-security关闭登录框的实现示例

    这篇文章主要介绍了spring-security关闭登录框的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • SpringBoot中dubbo+zookeeper实现分布式开发的应用详解

    SpringBoot中dubbo+zookeeper实现分布式开发的应用详解

    这篇文章主要介绍了SpringBoot中dubbo+zookeeper实现分布式开发的应用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11

最新评论