解决vue报错Not allowed to load local resource

本文介绍了在前后端分离项目中,Vue前端因浏览器安全限制无法直接使用绝对路径加载本地图片的问题。解决方法是通过配置Spring Boot的WebMvcConfigurer接口,设置资源映射,将本地图片路径映射为虚拟路径。配置完成后,可以使用类似'http://localhost:8201/doctor/qq.jpg'的虚拟路径来访问原本位于'E:/GraduationDesign/manage/hospital/src/assets/picture/'的图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

我在前后端分离项目中,在前端vue里面<img>标签中通过绝对路径访问本地图片,在加载图片的

时候会报出Not allowed to load local resource: ,这个问题我也进行了相关的搜索,出现这个问题

的原因是因为浏览器出于安全因素,禁止通过绝对路径访问图片,需要通过虚拟路径进行访问,下

面我会简单清楚的说明解决的方法。

解决方法

通过创建一个配置类,配置类去实现 WebMvcConfigurer 接口,重写里面的

addResourceHandlers 方法。

@Configuration
public class PictureConversionConfig implements WebMvcConfigurer {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
         /**
           * 资源映射路径
           * addResourceHandler:访问映射路径
           * addResourceLocations:资源绝对路径
          */
        registry.addResourceHandler("/doctor/**")
                .addResourceLocations("file:///E:/GraduationDesign/manage/hospital/src/assets/picture/");
    }
}

第一个 addResourceHandler 方法里面填写你想要设置的虚拟路径,下面

addResourceLocations 方法填写资源的绝对路径。配置完成后,虚拟路径为

http://localhost:配置类端口号/doctor/图片名称。

比如上面绝对路径为E:/GraduationDesign/manage/hospital/src/assets/picture/,而图片整体

路径为E:/GraduationDesign/manage/hospital/src/assets/picture/qq.jpg,则这里的虚拟路径

http://localhost:8201/doctor/qq.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值