当前位置: 首页 > news >正文

VUE语法--img图片不显示/img的src动态赋值图片显示

1、问题概述

常见情景1在VUE中使用img显示图片的时候,通过传参的方式传入图片的路径和名称,VUE不加载本地资源而是通过http://localhost:8080/...的地址去加载网络资源,从而出现了图片无法显示的情况。

常见情景2针对上述的问题,我们有些人会使用require函数去设置程序,告诉VUE你加载资源的时候加载本地资源,这个时候回报错:VUE使用require报错:Uncaught Error: cannot module ‘asstes/logo.png’

2、常规的使用图片方式

1、<img src=”../images/1.png” />

2、<img src=”http://....//2.png” />

这种直接通过相对路径获取项目下的图片或者直接使用或传入网络资源是没有问题的。

3、期望使用动态的图片地址

案例说明:在vue中通过ref创建了一个响应式的参数imgUrl,图片的路径是asstes/logo.png,在templateimg通过:src绑定使用了imgUrl,这个时候图片是无法显示的。

原因:vue没有将当前的图片信息当成是本地的静态资源处理,而是当成了网络资源处理,所以报错404找不到资源。

<template><div><img :src="imgUrl" alt=""></div>
</template>
<script>
import { ref } from 'vue'
export default {name: 'App',setup(){//简单数据的响应const imgUrl=ref('asstes/logo.png') return {imgUrl}}
}
</script>

4、通过require解决上述问题

我们对上面的代码进行改造,告诉VUE你要加载本地的静态资源而不是网络资源

我们在img中的:src中加入了require,这个函数可以实现加载本地资源而给网络资源

但是这个有报错。

VUE使用require报错:Uncaught Error: cannot module ‘asstes/logo.png’

<template><div><img :src="require(imgUrl)" alt=""></div>
</template>
<script>
import { ref } from 'vue'
export default {name: 'App',setup(){//简单数据的响应const imgUrl=ref('asstes/logo.png') return {imgUrl}}
}
</script>

4.1、问题分析+最终解决

Vue中,img组件的src使用require加载静态资源,不能使用变量,因为require是编译时执行的,而非运行时执行。在ES6中使用require加载静态资源的时候,相对路径需要写死,参数只传入名称就可以了。

代码改造如下:

代码分析:定义的imgUrl只包含了图片的名称logo.png,图片的静态资源asstes直接写死在require函数中。最终问题解决

<template><div><img :src="require('./assets/'+imgUrl)" alt=""></div>
</template>
<script>
import { ref } from 'vue'
export default {name: 'App',setup(){//简单数据的响应const imgUrl=ref('logo.png') return {imgUrl}}
}
</script>

http://www.lryc.cn/news/246447.html

相关文章:

  • springboot+vue智能企业设备管理系统05k50
  • C++中的new、operator new与placement new
  • ElasticSearch之cat anomaly detectors API
  • Luminar Neo1.16.0(ai智能图像处理)
  • ElasticSearch之cat aliases API
  • bash编程 数组和for循环的应用
  • Python基础:标准库概览
  • C#,《小白学程序》第三课:类class,类的数组及类数组的排序
  • 建筑结构健康监测系统和传统人工监测的区别
  • 二 使用GPIO的复用功能 利用USART 实现printf()
  • C#中的警告CS0120、CS0176、CS0183、CS0618、CS0649、CS8600、CS8601、CS8602、CS8604、CS8625及处理
  • js中声明变量的关键字(const,let,var)
  • Android13 launcher循环切页
  • Java学习路线第一篇:Java基础(2)
  • 网络工程师精华篇,50种网络故障及解决方法大集合
  • Unity播放网络视频
  • SCI一区级 | Matlab实现GWO-CNN-LSTM-selfAttention多变量多步时间序列预测
  • 线性分类器--图像表示
  • 车载通信架构 —— 传统车内通信网络FlexRay(较高速度高容错、较灵活拓扑结构)
  • 如何在Ubuntu的Linux系统中安装MySQL5.7数据库
  • 基于Hadoop的区块链海量数据存储的设计与实现
  • 运行时错误/缺陷到底是什么缺陷
  • 应用Web3.0的5种方法提升你的点击量
  • 计算机服务器中了mallox勒索病毒如何处理,mallox勒索病毒解密文件恢复
  • 408—电子笔记分享
  • 【每日一题】子数组的最小值之和
  • 【docker】docker总结
  • [英语学习][3][Word Power Made Easy]的精读与翻译优化
  • 使用UIActivityViewController分享图片,没有preview
  • linux安装终端连接工具Tabby