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

在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日

相关文章

  • JS组件系列之JS组件封装过程详解

    JS组件是基于JavaScript语言封装的、可重用的软件模块,可以用于完成某个特定的功能或提供一定程度的可定制性。 下面,我们将讲解JS组件封装的详细步骤。 一、需求分析和功能描述 在开发JS组件之前,我们需要先进行需求分析和功能描述。要根据实际需求明确该组件要实现哪些功能,以及如何实现这些功能。例如,我们需要开发一个表格插件,至少需要实现以下功能: 支持…

    other 2023年6月25日
    00
  • 获取控件大小和设置调整控件的位置XY示例

    获取控件大小和设置调整控件位置XY是页面布局中非常重要的操作。下面提供两个示例,分别介绍如何获取控件大小以及如何调整控件的位置。 示例1:获取控件大小 获取控件大小的方法可以通过JavaScript中的offsetWidth和offsetHeight属性来实现。下面是一个示例代码,可以获取DIV控件的宽度和高度: <div id="myDiv…

    other 2023年6月27日
    00
  • 删除SAM文件,清除Administrator账号密码

    要删除SAM文件并清除Administrator账号密码,我们需要进入Windows操作系统的安全模式。然后执行以下步骤: 1. 进入Windows安全模式 按下电脑的电源按钮,当看到启动画面时,按F8键进入高级启动选项界面。选择“安全模式”,然后按回车键。电脑现在将会在安全模式下启动。 2. 找到SAM文件 在安全模式下,我们需要找到C:\Windows\…

    other 2023年6月27日
    00
  • 详解c#与js的rsa加密互通

    详解C#与JS的RSA加密互通攻略 在本攻略中,我们将详细讲解如何在C#和JavaScript之间实现RSA加密的互通。RSA是一种非对称加密算法,它使用公钥加密、私钥解密的方式来保护数据的安全性。 1. 生成RSA密钥对 首先,我们需要生成一对RSA密钥,其中一个用于加密(公钥),另一个用于解密(私钥)。在C#中,我们可以使用RSACryptoServic…

    other 2023年8月6日
    00
  • vue3封装简易的vue-echarts问题

    下面是关于封装简易的vue-echarts的攻略。 什么是 Vue-Echarts Vue-Echarts是一款基于 Vue.js 的 Echarts 封装组件库,它提供了一个简洁明了的 API,便于我们在 Vue.js 项目中使用 Echarts 图表库。它能够帮助我们快速实现各种图表,提高了我们的开发效率。 Vue3封装简易的Vue-Echarts 安装…

    other 2023年6月25日
    00
  • 在win7显示文件后缀名的设置方法

    在Windows 7中,你可以通过以下步骤来显示文件的后缀名: 打开“文件资源管理器”:点击任务栏上的“开始”按钮,然后选择“计算机”或“我的电脑”。 在“文件资源管理器”窗口中,点击顶部菜单栏上的“工具”选项。 在下拉菜单中,选择“文件夹选项”。 在“文件夹选项”对话框中,点击“查看”选项卡。 在“高级设置”列表中,找到“隐藏已知文件类型的扩展名”选项,并…

    other 2023年8月5日
    00
  • Objective-C中关于实例所占内存的大小详解

    Objective-C中关于实例所占内存的大小详解 在Objective-C中,每个实例对象都会占用一定的内存空间。了解实例所占内存的大小对于优化内存使用和性能至关重要。本攻略将详细讲解Objective-C中实例所占内存的大小,并提供两个示例说明。 1. 实例对象的内存布局 Objective-C的实例对象内存布局由以下几个部分组成: isa指针:每个实例…

    other 2023年8月1日
    00
  • javascript的函数第1/3页

    JavaScript的函数详解 JavaScript是一种强大的脚本语言,函数是JavaScript中的核心概念之一。以下是JavaScript函数的详细攻略: 1. 函数的定义和调用 在JavaScript中,可以使用function关键字来定义函数。函数可以有参数和返回值。以下是函数的定义和调用的示例: // 定义一个函数 function greet(…

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