SpringBoot重写addResourceHandlers映射文件路径方式

目录
  • 重写addResourceHandlers映射文件路径
    • 在此记录以下
  • 配置本地资源映射路径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;
/**
 * 拦截器配置
 */
@Configuration
public 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”) 是当前项目路径

成功访问如下

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

(0)

相关推荐

  • SpringBoot通过源码探究静态资源的映射规则实现

    我们开发一个Spring Boot项目,肯定要导入许多的静态资源,比如css,js等文件 如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将所有的页面导在这里面的,对吧!但是我们现在的pom呢,打包方式是为jar的方式,那么这种方式SpringBoot能不能来给我们写页面呢?当然是可以的,但是SpringBoot对于静态资源放置的位置,是有规定的! 1.静态资源映射规则 1.1.第一种映射规则 SpringBoot中,SpringMVC的web配置都在 WebMvcA

  • 使用SpringBoot设置虚拟路径映射绝对路径

    目录 SpringBoot 设置虚拟路径映射绝对路径 下面我们就来代码实现下 springboot打war包图片的虚拟路径映射 在html图片的路径如图 然后要映射到阿里云Linux服务器上路径 映射方法 在Host节点加上下面的 这里顺便放上后台接收上传头像的代码 SpringBoot 设置虚拟路径映射绝对路径 上传图片到本地路径,得到的是一个绝对路径例如:D:\picpath\O48681516429132485.png 但是前台需要的数据是这样的 :http://localhost:808

  • SpringBoot中的五种对静态资源的映射规则的实现

    SpringBoot中的SpringMVC配置功能都是在WebMvcAutoConfiguration类中,xxxxAutoConfiguration就是帮我们给容器中自动配置组件的:idea全局搜索的快捷键是两次shift,查看webMvcAutoConfiguration 查看webMvc自动配置类 WebMvcAutoConfiguration类的原理以后至少还要稍微掌握,而这里文章只是来看它的具体的关键代码,这里只例举部分关键代码,多了看着也头疼,看不懂没关系哈哈哈可跳过源码阶段,何必徒

  • SpringBoot重写addResourceHandlers映射文件路径方式

    目录 重写addResourceHandlers映射文件路径 在此记录以下 配置本地资源映射路径addResourceHandlers 成功访问如下 重写addResourceHandlers映射文件路径 在看一个博客源码发现页面的图片所映射的地址在SpringBoot静态资源文件夹下找不到原來在这里是通过下面这段代码,将/store/**地址映射为getStorePath()得到的地址 在此记录以下 registry.addResourceHandler("/store/**").a

  • Python内存映射文件读写方式

    我就废话不多说了,还是直接看代码吧! import os import time import mmap filename = 'test.txt' #如果不存在,创建. if not os.path.exists(filename): open(filename, 'w') print(os.path.isdir(filename)) if os.path.isfile(filename): print(time.ctime(os.path.getctime(filename))) fd =

  • 使用springboot打包后的文件读取方式

    目录 springboot打包后的文件读取 文件打包问题 文件读取问题 Springboot打包后读取不到文件 解决办法1 失败.. 解决办法 2 springboot打包后的文件读取 在使用了springboot打包后的项目中,牵扯到项目目录中文件读取工作时,明明在开发时功能正常,但是一到发布到线上环境就会报文件找不到,路径不存在的问题. 由于在开发过程中,文件就在我们本地目录中存在,因此普通正常文件的读写功能不受影响,而一旦打包后,可能会由于我们自己的文件目录放置原因一是没有被正确打包到ja

  • springboot读取resources下文件的方式详解

    项目中很多时候需要读取自定义配置文件,本地开发工具怎么写都成功但是部署到服务其上就出现问题, 异常BOOT-INF/classes!/config.xml (文件名.目录名或卷标语法不正确.)路径中带有叹号之类的 了解了大概之后就是springboot打成jar是一个文件,也就是一个压缩包,没有办法读取压缩文件里的路径,因此要解决这个问题了解读取配置文件的原理,直接获取文件流就可以了. 1.使用项目内路径读取,只能在开发工具中使用,部署之后无法读取.(不通用) 类似:src/main/resou

  • springboot配置文件读取pom文件信息方式

    目录 配置文件读取pom文件信息 解决的问题 解决 修改后的写法 maven打包命令 可能会出现的一些问题 Pom文件依赖配置说明 scope依赖范围 配置文件读取pom文件信息 解决的问题 springboot(当然别的也可以)多环境切换需要修改配置文件硬编码,打包时不够方便. 解决 配置文件能读取pom文件中的配置,根据命令选择不同配置注入springboot的配置文件中 pom配置文件: <!-- 环境 --> <profiles> <!-- 开发 --> <

  • 快速了解hibernate配置文件与映射文件

    Hibernate是一个彻底的ORM(Object Relational Mapping,对象关系映射)开源框架. 我们先看一下官方文档所给出的,Hibernate 体系结构的高层视图: 其中PO=POJO+映射文件 根据体系结构视图可以了解到整个利用Hibernate框架实现的项目包括整个重要的配置文件: Hibernate配置文件:实现Hibernate基础配置,是Hibernate能够友好的与DB进行交互基础:开发时放置src目录下,取名为:hibernate.cfg.xml(hibern

  • C#.Net通信共享内存映射文件Memory Mapped

    目录 内存映射文件究竟是个什么? .Net 共享内存 内存映射文件原理 C# .Net 共享内存 演示代码 C# .Net 进程间通信共享内存 IMServer_Message.exe 代码 IMServer_State.exe代码 节点通信存在两种模型:共享内存(Shared memory)和消息传递(Messages passing). 内存映射文件对于托管世界的开发人员来说似乎很陌生,但它确实已经是很远古的技术了,而且在操作系统中地位相当.实际上,任何想要共享数据的通信模型都会在幕后使用它

  • SpringBoot找不到映射文件的处理方式

    目录 SpringBoot找不到映射文件 SpringBoot映射本地文件到URL路径 1.使用配置类 2.在配置文件yml中配置 SpringBoot找不到映射文件 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.qf.mapper.UserM 如果xml文件配置都确认无误还不能解决的话,可以尝试在pom.xml文件中进行如下配置: <build> <resourc

  • SpringBoot中5种高大上的yml文件读取方式

    目录 1.Environment 2.YamlPropertiesFactoryBean 3.监听事件 4.SnakeYml 5.jackson-dataformat-yaml 总结 在上一篇文章中,我们从源码角度分析了SpringBoot解析yml配置文件的全流程,那么我们今天就来点实战,总结一下除了烂大街的@Value和@ConfigurationProperties外,还能够通过哪些方式,来读取yml配置文件的内容. 1.Environment 在Spring中有一个类Environmen

随机推荐