前端开发攻略---三种方法解决Vue3图片动态引入问题
目录
1、将图片放入public文件夹中
2、使用 /src/.... 路径开头
3、生成图片的完整URL地址(推荐)
1、将图片放入public文件夹中
使用图片:路径为 '/public' 开头
<template><div><img :src="`/public/${flag ? '01' : '02'}.jpg`" alt="" /><button @click="flag = !flag">动态切换图片</button></div></template><script setup> import { ref, reactive } from 'vue' const flag = ref(false) </script><style scoped> img {width: 500px;height: 500px;vertical-align: middle; } button {width: 100px;height: 50px; } </style>
2、使用 /src/.... 路径开头
图片位置位于 src 目录下
可以使用 '/src/...' 动态引入图片
<template><div><img :src="`/src/assets/images/${flag ? '01' : '02'}.jpg`" alt="" /><button @click="flag = !flag">动态切换图片</button></div> </template><script setup> import { ref, reactive } from 'vue' const flag = ref(false) </script><style scoped> img {width: 500px;height: 500px;vertical-align: middle; } button {width: 100px;height: 50px; } </style>
致命问题:使用这种方式本地看起来很正常,但是部署到生产环境图片就加载不出了,因为打包后路径出现了问题
3、生成图片的完整URL地址(推荐)
图片位置位于 src 目录下
通过手写 getImageUrl函数 动态生成图片URL地址
<template><div><img :src="getImageUrl(flag ? '01.jpg' : '02.jpg')" alt="" /><button @click="flag = !flag">动态切换图片</button></div> </template><script setup> import { ref, reactive } from 'vue' const flag = ref(false)function getImageUrl(url) {const path = new URL(`./assets/images/${url}`, import.meta.url)return path.href } </script><style scoped> img {width: 500px;height: 500px;vertical-align: middle; } button {width: 100px;height: 50px; } </style>
注意:getImageUrl函数中使用的地址是相对位置的地址
该函数位于 App.vue 文件中 所以 getImageUrl函数 中的地址是 ./assets/....
当该函数所处的文件地址变化时,找图片的地址也要相对发生变化
解释一下getImageUrl函数中代码的作用和意思
作用:
这个函数是用来获取图片的 URL 地址的。它接受一个参数
url
,然后使用new URL()
构造函数创建一个新的 URL 对象,其中包含了./assets/images/
目录下的图片路径。在这个路径中,url
参数用于指定具体的图片文件名或路径。最后,通过path.href
返回完整的 URL 地址。意思:
1、new URL()
构造函数创建了一个新的 URL 对象。2、这个 URL 对象的第一个参数是一个字符串,表示相对路径
./assets/images/
,这里假设这是图片文件存放的目录。3、第二个参数
import.meta.url
是 Node.js 中的一个特殊变量,它指向当前模块文件的 URL 地址。4、函数将传入的
url
参数附加到./assets/images/
路径后面,得到了完整的图片路径。5、最后,通过
path.href
返回这个完整的图片 URL 地址。
相关文章:

前端开发攻略---三种方法解决Vue3图片动态引入问题
目录 1、将图片放入public文件夹中 2、使用 /src/.... 路径开头 3、生成图片的完整URL地址(推荐) 1、将图片放入public文件夹中 使用图片:路径为 /public 开头 <template><div><img :src"/public/${flag ? 01 : 02}.jp…...

零售EDI:Target DVS EDI项目案例
Target塔吉特是美国一家巨型折扣零售百货集团,与全球供应商建立长远深入的合作关系,目前国内越来越多的零售产品供应商计划入驻Target。完成入驻资格审查之后,Target会向供应商提出EDI对接邀请,企业需要根据指示完成供应商EDI信息…...
AWS安全性身份和合规性之AWS Firewall Manager
AWS Firewall Manager是一项安全管理服务,可让您在AWS Organizations中跨账户和应用程序集中配置和管理防火墙规则。在创建新应用程序时,您可以借助Firewall Manager实施一套通用的安全规则,更轻松地让新应用程序和资源从一开始就达到合规要求…...

R实验 随机变量及其分布
实验目的: 掌握常见几种离散性随机变量及其分布在R语言中对应的函数用法;掌握常见几种连续性随机变量及其分布在R语言中对应的函数用法;掌握统计量的定义及统计三大抽样分布在R语言中对应的函数用法。 实验内容: (习题…...

rapidssl泛域名https600元一年
泛域名https证书也可以称之为通配符https证书,指的是可以用一张https证书为多个网站(主域名以及主域名下的所有子域名网站)传输数据加密,并且提供身份认证服务的数字证书产品。RapidSSL旗下的泛域名https证书性价比高,申请速度快,…...

月薪5万是怎样谈的?
知识星球(星球名:芯片制造与封测技术社区,星球号:63559049)里的学员问:目前是晶圆厂的PE,但是想跳槽谈了几次薪水,都没法有大幅度的增长,该怎么办?“学得文武…...

linux下宝塔负载100%解决方法
今天发现服务器宝塔面板负载居然是100% 但是cpu 和内存其实并不高 通过命令查看主机 uptime 中load average 居然高达18.23 看来负载是真的高了 通过vmstat 看看具体问题 procs: r 表示运行和等待CPU时间片的进程数,这个值如果长期大于系统CPU个数…...

【C++】STL快速入门基础
文章目录 STL(Standard Template Library)1、一般介绍2、STL的六大组件2.1、STL容器2.2、STL迭代器2.3、相关容器的函数vectorpairstringqueuepriority_queuestackdequeset, map, multiset, multimapunordered_set, unordered_map, unordered_multiset, …...

面向对象编程的魅力与实战:以坦克飞机大战为例
新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、面向对象编程的引言 二、理解面向对象编程与面向过程编程的差异 三、创建类与对象&…...

二叉树——堆的实现
一.前言 前面我们讲解了二叉树的概念以及二叉树的存储结构:https://blog.csdn.net/yiqingaa/article/details/139224974?spm1001.2014.3001.5502 今天我们主要讲讲二叉树的存储结构,以及堆的实现。 二.正文 1.二叉树的顺序结构及实现 1.1二叉树的顺序…...
【Spring】DynamicDataSourceHolder 动态数据源切换
【Spring】DynamicDataSourceHolder 动态数据源切换 常见场景常见工具一、AbstractRoutingDataSource1.1、 定义 DynamicDataSourceHolder1.2、 配置动态数据源1.3、 在Spring配置中定义数据源1.4、在业务代码中切换数据源 二、Dynamic Datasource for Spring Boot2.1. 添加依赖…...
LeeCode 3165 线段树
题意 传送门 LeeCode 3165 不包含相邻元素的子序列的最大和 题解 考虑不含相邻子序列的最大和,在不带修改的情况下容易想到,以最后一个元素是否被选取为状态进行DP。从线性递推的角度难以处理待修改的情况。 从分治的角度考虑,使用线段树…...

修改元组元素
自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 场景模拟:伊米咖啡馆,由于麝香猫咖啡需求量较大,库存不足,店长想把它换成拿铁咖啡。 实例08 将麝香猫…...

【模版方法设计模式】
文章目录 模板方法设计模式模板方法的设计原则模板方法设计模式组成部分代码实现抽象类实现具体实现类执行 模板方法设计模式 模版方法设计模式(Template Method Pattern)是一种行为设计模式,它定义了一个操作中的算法骨架,而将一…...

rust语言初识
程序设计实践课上水一篇ing 来源:rust基础入门-1.初识rust-酷程网 (kucoding.com) rust作为一名新兴语言,与go又有些许不同,因为它的目标是对标系统级开发,也就是C、C这两位在编程界的位置。比如我们最常用的windows系统&#x…...

知识图谱数据预处理笔记
知识图谱数据预处理笔记 0. 引言1. 笔记1-1. \的转义1-2. 特殊符号的清理1-3. 检查结尾是否正常1-4. 检查<>是否存在1-5. 两端空格的清理1-6. 检查object内容长时是否以<开始 0. 引言 最近学习知识图谱,发现数据有很多问题,这篇笔记记录遇到的…...

Unity面试八股文之基础篇
文章目录 前言1. Unity的生命周期加载第一个场景Editor在第一次帧更新之前帧之间更新顺序协程销毁对象时退出时 2. Unity 协程和线程,进程的区别3. 本地坐标系 世界坐标系4. 碰撞器和触发器的区别后话 前言 开设这个栏目的博文会写一些有关unity的面试题目,在面试的…...
HTTPS能否避免流量劫持?如何实现HTTPS
在当今数字化时代,网站安全已经成为企业和个人的头等大事。随着网络犯罪和数据泄露的增加,保护您的网站免受潜在威胁比以往任何时候都更加重要。网站安全的一个关键组成部分是HTTPS,它代表着安全的超文本传输协议。HTTPS是标准HTTP协议的安全…...
簡述Vue 2.0 响应式数据的原理
Vue 2.0 响应式数据的原理主要基于以下几个关键点: 数据劫持与Object.defineProperty: Vue 2.0 使用 Object.defineProperty 方法来劫持对象的属性,为其添加 getter 和 setter 方法。当数据被访问或修改时,这些 getter 和 setter …...

Kafka线上集群部署方案怎么做?no.6
专栏前面几期内容,我分别从Kafka的定位、版本的变迁以及功能的演进等几个方面循序渐进地梳理了Apache Kafka的发展脉络。通过这些内容,我希望你能清晰地了解Kafka是用来做什么的,以及在实际生产环境中该如何选择Kafka版本,更快地帮…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
React 第五十五节 Router 中 useAsyncError的使用详解
前言 useAsyncError 是 React Router v6.4 引入的一个钩子,用于处理异步操作(如数据加载)中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误:捕获在 loader 或 action 中发生的异步错误替…...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

【WiFi帧结构】
文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...

招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...