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

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.kler.cn/a/147619.html

相关文章:

  • 基于Spring Boot的电子商务系统设计
  • 安全,服务器证书和SSL连接
  • 新手小白学习docker第八弹------实现MySQL主从复制搭建
  • 【PyTorch】libtorch_cpu.so: undefined symbol: iJIT_NotifyEvent
  • 使用 Prompt API 与您的对象聊天
  • 云原生周刊:Istio 1.24.0 正式发布
  • [学习笔记]IK分词器的学习
  • 探究Kafka原理-7.exactly once semantics 和 性能测试
  • Python批量裁剪图像尺寸、压缩图像大小代码实现
  • 阿里云对象存储oss-文件上传过程详解(两种方式)
  • 简易版扫雷+代码分析
  • ElasticSearch的日志配置
  • 十分钟搭建VScode C/C++运行环境
  • 03、K-means聚类实现步骤与基于K-means聚类的图像压缩(1)
  • Python基础语法之学习数据转换
  • React Native 源码分析(五)—— Fabric创建View的过程
  • 复习 学习 多看
  • leetcode9.回文数
  • java Swing UI设置统一字体大小
  • 一起学docker系列之十docker安装tomcat实践
  • leetCode 226.翻转二叉树
  • MFC—CTabCtrl 、CListCtrl
  • k8s docker总结特殊点
  • 【Jmeter】什么是BeanShell?
  • ACE 2005,LDC2006T06数据集获取
  • 2023人形机器人行业海外科技研究:从谷歌看机器人大模型进展