spring boot配置虚拟路径(替代docBase配置)访问本地图片


以前使用SSM框架开发web项目时,访问本地磁盘图片的虚拟路径可以在Tomcat的service.xml文件中进行配置,具体可看我的另一篇文章:IDEA设置虚拟路径,解决前端展示本地磁盘图片问题!


🆗,现在问题来了,spring boot的Tomcat是内置的,所以在Tomcat的service.xml文件中配置虚拟路径是行不通的。需要改为@Configuration class配置类的形式来定制资源映射路径

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class MyWebAppConfiguration implements WebMvcConfigurer {

	//定制资源映射
   @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //意思是:url中读取到/upload时,就会自动将/upload解析成D:/idea/java_workspace/image/upload
        registry.addResourceHandler("/upload/**").addResourceLocations("file:D:/idea/java_workspace/image/upload/");
        /**
         * Linux系统
         * registry.addResourceHandler("/upload/**").addResourceLocations("file:/home/image/upload/");
         */
    }
}

addResourceHandler(“xxx”) 用于指定对外暴露的访问路径,addResourceLocations(“xxx”) 用于指定文件放置路径


🆗,编写了上面的这些代码后,虚拟路径就已经配置成功咯


这是我本地图片的地址
cd4356

效果
cd4356



🆗,前面的是无坑区。下面我们来讲一下坑,怎么挖坑把自己埋了然后怪别人没有拉住自己!


在开发web项目时,我们一般都会设置项目根路径(应用上下文路径)

server:
  port: 8080  #tomcat端口号
  servlet:
    context-path: /cd  #项目根路径/应用上下文路径


🆗,如果有设置ContextPath上下文路径,那么访问本地图片的时候还需要在URL中加上该应用上下文路径,才能正常访问到本地图片,否则404
cd4356


cd4356


所以,在配置了虚拟路径之后还是访问不了本地图片,那么就去看一下你有没有是不是配置了应用上下文路径

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

家师曹先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值