千家信息网

SpringBoot如何重写addResourceHandlers映射文件路径

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"SpringBoot如何重写addResourceHandlers映射文件路径"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBo
千家信息网最后更新 2025年02月01日SpringBoot如何重写addResourceHandlers映射文件路径

这篇文章主要介绍"SpringBoot如何重写addResourceHandlers映射文件路径"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"SpringBoot如何重写addResourceHandlers映射文件路径"文章能帮助大家解决问题。

重写addResourceHandlers映射文件路径

在看一个博客源码发现页面的图片所映射的地址在SpringBoot静态资源文件夹下找不到原來在这里是通过下面这段代码,将/store/**地址映射为getStorePath()得到的地址

在此记录以下

registry.addResourceHandler("/store/**").addResourceLocations(getStorePath());
@Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        registry.addResourceHandler("/dist/**").addResourceLocations("classpath:/static/dist/");        registry.addResourceHandler("/theme/**").addResourceLocations("classpath:/static/theme/");        registry.addResourceHandler("/store/**").addResourceLocations(getStorePath());        super.addResourceHandlers(registry);    }

配置本地资源映射路径 addResourceHandlers

实现 WebMvcConfigurer,重写addResourceHandlers(ResourceHandlerRegistry registry)方法

  • addResourceHandler():添加的是访问路径

  • addResourceLocations():添加的是映射后的真实路径,映射的真实路径末尾必须加 / ,不然映射不到,这个问题困扰了我半天, / 适用于 windows和linux

如下:

package cn.mindgd.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * 拦截器配置 */@Configurationpublic class InterceptorConfig implements WebMvcConfigurer {    /**     * @author: JiaXinMa     * @description: 访问静态文件     * @date: 2021/4/15     */    @Override    public void addResourceHandlers(ResourceHandlerRegistry registry) {        //访问路径        registry.addResourceHandler("/api/upload/**")                //映射真实路径                .addResourceLocations("file:" + System.getProperty("user.dir") + "/");//必须加"/",不然映射不到      }}

System.getProperty("user.dir") 是当前项目路径

成功访问如下

关于"SpringBoot如何重写addResourceHandlers映射文件路径"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

0