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日

相关文章

  • Java基础之详解基本数据类型的使用

    Java基础之详解基本数据类型的使用 在Java中,基本数据类型也称为简单数据类型,是Java中最基础和常用的数据类型。在此,我们将详细讲解各种基本数据类型的使用方法。 基本数据类型介绍 Java中共有8种基本数据类型,分别是: byte short int long float double char boolean 这些数据类型都有其对应的取值范围和初始…

    other 2023年6月27日
    00
  • 设置应用程序在Win11中崩溃怎么办?应用程序在Win11中崩溃解决方法

    针对应用程序在Win11中崩溃这个问题,可以根据以下几个步骤来尝试解决: 1. 更新系统和应用程序 首先,需要确保系统和应用程序都是最新的版本。可以通过“设置”应用进入“更新和安全”页面,点击“检查更新”来更新系统。同时,也需要打开应用商店或者前往应用程序官方网站,下载最新版本的应用程序。 2. 重新启动电脑 有时候,电脑长时间运行或者存在一些系统繁忙的情况…

    other 2023年6月25日
    00
  • Python 3 实现定义跨模块的全局变量和使用教程

    Python 3 实现定义跨模块的全局变量和使用教程 在Python中,全局变量是在整个程序中都可访问的变量。然而,当我们使用多个模块时,要在不同的模块之间共享全局变量可能会有些困难。在本教程中,我们将学习如何在不同的模块之间定义和使用跨模块的全局变量。 方法一:使用模块 一个简单的方法是创建一个专门用于存储全局变量的模块。我们可以在这个模块中定义全局变量,…

    other 2023年7月28日
    00
  • Android自定义WheelView地区选择三级联动

    一、背景介绍 在开发Android应用时,通过使用WheelView控件,我们可以实现像省市区选择器、时间选择器等功能。本文着重介绍如何使用自定义的WheelView控件实现地区选择三级联动的功能。 二、自定义WheelView控件 为了实现三级联动的地区选择功能,我们需要先自定义一个可以支持多级数据的控件。这里我们借鉴开源控件library中的WheelV…

    other 2023年6月25日
    00
  • iframe跨域通信封装详解

    iframe跨域通信封装详解 在前端开发中,由于浏览器的安全策略限制,不同域名下的网页之间无法直接进行通信。这时候就需要用到iframe跨域通信。 iframe跨域通信的原理 父窗口通过 iframe 元素加载子窗口(跨域)页面,在子窗口页面中添加数据监听、父窗口消息推送等方式实现跨域数据传输。 实现方式 下面介绍一种简单的iframe跨域通信封装实现方式。…

    other 2023年6月25日
    00
  • Android应用实现安装后自启动的方法

    以下是实现Android应用安装后自启动的方法的完整攻略: 方法1:使用广播接收器(Broadcast Receiver) 在AndroidManifest.xml文件中注册一个广播接收器,指定接收BOOT_COMPLETED(开机完成)和PACKAGE_REPLACED(应用安装完成)等系统广播事件。 <receiver android:name=\…

    other 2023年10月14日
    00
  • 获取C++变量类型的简单方法

    获取C++变量类型的简单方法包括两种方式:使用typeof关键字和使用typeid运算符。 使用typeof关键字 typeof是GCC和Clang编译器中的一种扩展,可以用于获取变量的类型。代码如下: #include <stdio.h> #define typeof __typeof__ // 因为原生typeof关键字只在C++中可用,而不…

    other 2023年6月26日
    00
  • 易语言声明变量的步骤讲解

    易语言声明变量的步骤讲解 在易语言中,声明变量是为了给一个数据项分配内存空间,并为其指定一个名称。变量可以存储不同类型的数据,如整数、浮点数、字符串等。下面是易语言声明变量的步骤讲解: 步骤一:选择变量类型 首先,你需要选择适合你的数据的变量类型。易语言提供了多种变量类型,包括整数、浮点数、字符串、布尔值等。根据你的需求,选择合适的变量类型。 以下是一些常见…

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