vue 动态设置img的src地址无效,npm run build 后找不到文件的解决

yizhihongxing

在Vue中动态设置img的src地址无效的问题,通常是因为在引用图片的路径上出现了问题。当使用npm run build后,webpack会将所有的静态资源文件(如图片、CSS等)打包成静态文件,如果路径不正确,打包后引用的文件名就会发生变化,导致找不到文件的问题。下面是详细的攻略。

1. 确认文件路径

在Vue中,引用图片的路径通常是相对路径。如果出现路径错误,打包后Vue会在找不到对应的文件,而导致图片无法显示。

例如,在下面的代码中,images目录应该在src目录下:

<img src="../images/logo.png">

如果在打包后的JS文件中,路径变为了assets/imgs/logo.png,Vue就无法找到对应的文件,图片也就无法显示。

因此,在使用Vue的时候,需要确认引用文件的路径是否正确,特别是在使用相对路径时。

2. 使用require引用图片

如果在Vue中,使用require引用图片,可以避免路径错误的问题。require用于引用模块或文件,其中如果以'./' './.' 或 '../'开头,就可以表示相对路径。

例如,在下面的代码中,我们使用require引用图片,再把图片路径放在data中,就能够动态设置img标签的src属性:

<template>
  <div>
    <img :src="imgSrc" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      imgSrc: ""
    };
  },
  mounted() {
    this.imgSrc = require("../assets/images/logo.png");
  }
};
</script>

需要注意的是,使用require引用图片,需要在build/webpack.base.conf.js文件中配置loader:

{
  test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
  loader: 'url-loader',
  options: {
    limit: 8192,
    name: utils.assetsPath('img/[name].[hash:7].[ext]')
   }
},

将以上代码放到module.rules中,就可以在Vue中使用require动态设置img标签的src地址了。

示例

  • 设置图片路径错误
<template>
  <div>
    <img :src="../images/logo.png" />
  </div>
</template>

<script>
export default {
  data() {
    return {};
  }
};
</script>

以上代码中,图片文件路径错误

  • 使用require引用图片
<template>
  <div>
    <img :src="imgSrc" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      imgSrc: ""
    };
  },
  mounted() {
    this.imgSrc = require("../assets/images/logo.png");
  }
};
</script>

以上代码中,使用require引用图片,并动态设置img标签的src属性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue 动态设置img的src地址无效,npm run build 后找不到文件的解决 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 电脑cpu温度过高怎么办

    对于电脑CPU温度过高的问题,我们可以采取以下措施: 1. 清洁电脑内部 电脑风扇、散热器的堵塞是导致CPU温度过高的主要原因之一。因此,清洁电脑内部可以有效地解决这一问题。 具体方法如下: 首先,先将电脑关闭,并断开所有连接线。 拿出电脑内部的散热器和风扇。 使用吸尘器或者软毛刷将散热器和风扇的灰尘清除干净。 注意不要弄坏风扇的叶片,同时检查风扇的轴承是否…

    其他 2023年4月16日
    00
  • Linux基础(11)原始套接字

    Linux基础(11) 原始套接字 在计算机网络中,套接字(socket)是通信的基础,原始套接字(raw socket)就是在传输层协议中更底层的一种套接字。原始套接字可以用于发送和接收IP数据包,使用原始套接字可以让我们更加深入地了解网络通信过程中的细节。 创建原始套接字 在Linux系统中,我们可以使用socket()函数来创建原始套接字。需要指定地址…

    其他 2023年3月28日
    00
  • Android与H5互调详细介绍

    下面是针对“Android与H5互调详细介绍”的完整攻略。实现Android与H5的数据交互,我们可以使用以下方法: 1. 使用JavascriptInterface 我们可以通过JavascriptInterface类在Android中定义一个Java的接口,用于接受H5页面获取的数据,并且可以向H5页面发送数据。 首先,在android代码中定义一个Ja…

    other 2023年6月27日
    00
  • sql根据表名获取字段及对应说明

    要根据表名获取字段及对应说明,需要使用SQL语句中的“DESCRIBE”或是“SHOW COLUMNS”命令。 下面分别介绍这两个方法的使用步骤。 Method 1: 使用DESCRIBE命令 使用DESCRIBE命令,可以查询指定表格下的所有字段信息,包括字段名、数据类型、键类型、是否为null等。 查看表结构 使用DESCRIBE命令可以查看指定表的结构…

    other 2023年6月25日
    00
  • 酷我音乐api

    以下是酷我音乐API的完整攻略,包括以下步骤: 获取酷我音乐API的接口地址 发送HTTP请求 解析API响应 示例说明 步骤一:获取酷我音乐API的接口地址 在使用酷我音乐API之前,需要先获取API的接口地址。以下是获取酷我音乐API接口地址的步骤: 打开酷我音乐官方网站 查找API文档或开发者文档 获取API接口地址 步骤二:发送HTTP请求 在获取酷…

    other 2023年5月9日
    00
  • Java编程删除链表中重复的节点问题解决思路及源码分享

    对于Java编程删除链表中重复的节点问题,我们需要执行以下步骤: 1. 确定问题 在整个链表中,删除任何重复出现的节点,以保留链表中每个节点仅出现一次。 2. 解决思路 首先,我们需要一个哈希表来存储已经遍历到的节点。对于当前遍历到的节点,我们检查其是否已经在哈希表中存在。如果存在,则表示这个节点之前已经出现过,我们需要将其删除。如果不存在,则将这个节点加入…

    other 2023年6月28日
    00
  • nginx配置ssl双向验证的方法

    配置 SSL 双向验证需要以下步骤: 生成证书 首先安装 Open SSL。在 Linux 系统上可以使用以下命令安装: sudo apt-get install openssl 下面是一个生成 SSL 证书的示例命令: openssl req -new -x509 -days 3650 -nodes -out server.crt -keyout serv…

    other 2023年6月27日
    00
  • golang学习笔记—rand

    以下是详细讲解“golang学习笔记—rand”的完整攻略,过程中包含两个示例说明: golang学习笔记—rand 在Go语言中,rand包提供了伪随机数生成器,可以用于生成随机数。本攻略将介绍rand包的基本概念、函数和两个示例说明。 基本概念 在开始使用rand包之前,我们需要了解一些基本概念: 伪随机数:伪随数是一种看起来像随机数的数列,但是…

    other 2023年5月10日
    00
合作推广
合作推广
分享本页
返回顶部