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

vite+vue3实现动态路径导入

最近在做一个项目有个需求: 项目图片分为英语,中文,德语 ,我将这些图片存放到/image/language/下面的每个语言的文件夹内,如en,zh-cn文件夹下面存放对应的语言的图片,如果在代码里面写路径的话,除了要写一堆路径还要判断不同的语言,非常麻烦,但是在vue3+vite里面import导入的是加载时的静态文件,require在vite里面使用不了,但是如果在代码里面html模版里面写一堆判断也不好,我翻了vite文档,找到了如下方法,可以动态加载对应图片,解决了我的问题,代码如下:

<script setup>
import { ref, reactive, onMounted } from "vue";
import { useI18n } from 'vue-i18n';
const { locale } = useI18n();
const languageBag = ref("")// 解析字符串路径动态构建图片路径
const imagePath = (fileName) => {// 动态导入图片const imgUrl = new URL(`../assets/image/language/${languageBag.value}/accumulatedExercise/${fileName}.png`,import.meta.url).href;console.log("imgUrl", imgUrl); // 打印结果: http://192.168.1.92:8080/src/assets/image/language/en/accumulatedExercise/oneDayTitle.pngreturn imgUrl;
};// 绑定的是字符串,不会被url解析,也就不会被显示到页面上
const url_one = ref("@/assets/image/language/en/accumulatedExercise/oneDayImg.png");// 解析字符串路径动态构建图片路径,可以被展示到页面上面
const url_two = ref(null);onMounted(()=>{// 获取当前语言languageBag.value = locale.value// 设置对应路径url_two.value = imagePath("oneDayImg");
})
</script><template><div class=""><!-- 直接使用原生渲染图片 --><img src="@/assets/image/language/en/accumulatedExercise/oneDayImg.png" alt="直接使用原生渲染图片"/><!-- 使用模版绑定进行渲染,这种方式只是绑定了字符串,不会被解析为真实路径 --><img :src="url_one" alt="使用模版绑定进行渲染" /><!-- 动态加载静态图片路径,将路径进行了url的解析,使其能被渲染出来 --><img :src="url_two" alt="动态加载静态图片路径" /></div>
</template><style scoped lang="scss"></style>

相关文章:

vite+vue3实现动态路径导入

最近在做一个项目有个需求: 项目图片分为英语,中文,德语 ,我将这些图片存放到/image/language/下面的每个语言的文件夹内,如en,zh-cn文件夹下面存放对应的语言的图片,如果在代码里面写路径的话,除了要写一堆路径还要判断不同的语言,非常麻烦,但是在vue3vite里面import导入的是加…...

JAVA——File类

目录 1.概述 2.构造方法 a.根据文件路径创建文件对象 b.根据父级路径和子级路径创建对象 c.根据File表示的路径和String表示路径进行拼接 3.常见方法 a.判断文件是否存在 b.判断文件是否为文件夹 c.判断是否为文件 d.获取文件大小 e.获取文件的绝对路径 f.获取定义…...

掌握Postman,开启API测试新纪元!

Postman是一款流行的API测试工具和开发环境&#xff0c;旨在简化API开发过程、测试和文档编制。它提供了一套功能强大的工具&#xff0c;帮助开发人员更轻松地构建、测试和调试Web服务。 Postman 工具的优势 Postman 可以快速构建请求、还可以保存以后再使用。 Postman 还提…...

JAVA-数据结构-排序

1.直接插入排序 1.原理&#xff1a;和玩扑克牌一样&#xff0c;从左边第二个牌开始&#xff0c;选中这个&#xff0c;和前面的所有牌比较&#xff0c;插在合适的位置 public static void insertsort(int[] arr){//直接插入排序for (int i 1; i < arr.length; i) {//此循环…...

初识数据结构--时间复杂度 和 空间复杂度

数据结构前言 数据结构 数据结构是计算机存储、组织数据的方式(指不仅能存储数据&#xff0c;还能够管理数据-->增删改)。指相互之间存在一种或多种特定关系的数据元素的集合。没有单一的数据结构对所有用途都有用&#xff0c;所以我们要学习各种的数据结构&#xff0c;比…...

Ubuntu QT 交叉编译环境搭建

文章目录 下载安装qtCreatornot a valid identifier 的错误 安装g下载并安装交叉编译器下载交叉编译器安装交叉编译器 下载编译 ARM 的Qt平台源码配置arm的QT平台 下载安装qtCreator 去QT下载官网下载对应需要的QT软件。 这里下载5.12.96版本的 改变安装包权限&#xff0c;…...

C语言中缓冲区底层实现以及数据输入的处理

C语言中缓冲区底层实现以及数据输入的处理 一、缓冲区的概念 在C语言的标准输入输出操作中&#xff0c;缓冲区&#xff08;Buffer&#xff09; 扮演着至关重要的角色。在计算机系统中&#xff0c;缓冲区是一块用于暂存数据的内存区域。在输入输出&#xff08;I/O&#xff09;…...

RocketMQ事务消息原理

一、RocketMQ事务消息原理&#xff1a; RocketMQ 在 4.3 版本之后实现了完整的事务消息&#xff0c;基于MQ的分布式事务方案&#xff0c;本质上是对本地消息表的一个封装&#xff0c;整体流程与本地消息表一致&#xff0c;唯一不同的就是将本地消息表存在了MQ内部&…...

【Java】IntelliJ IDEA开发环境安装

一、下载 官方地址&#xff1a;https://www.jetbrains.com/idea/ 点击Download直接下载 二、安装 双击安装包&#xff0c;点击Next 选择安装路径&#xff0c;点击Next 勾选安装内容 安装完成。 三、创建项目 打开IDEA&#xff0c;填写项目名称&#xff0c;选择项目安装路径…...

Go语言中的通道 (Channel) 实践:Goroutine之间的通信

1. 引言 在Go语言中&#xff0c;并发编程是其核心优势之一。与其他编程语言不同&#xff0c;Go语言推荐使用通道 (Channel) 来进行多线程或并发任务的协调与通信&#xff0c;而非使用锁机制。本文将介绍如何通过通道在多个goroutine之间进行通信&#xff0c;避免竞争条件和复杂…...

常用类(二)--String类的简单总结

文章目录 1.基本介绍1.1创建对象1.2找到对应下标的字符1.3找到对应字符的下标1.4指定位置开始遍历1.5反向进行遍历1.6大小写之间的转换1.7字符串转换为数组1.8元素的替换1.9字符串的分割1.10字符串的截取 2.StringBuilder和StringBuffer2.1 StringBuilder的引入2.2面试题目 1.基…...

Spring Boot开发:从入门到精通

Spring Boot开发&#xff1a;从入门到精通 当你在开发一个新的Java应用时&#xff0c;是否曾经感到苦恼于繁琐的配置和重复的代码&#xff1f;Spring Boot就像一位友好的助手&#xff0c;向你伸出援手&#xff0c;让开发变得轻松愉快。从这一单一框架中&#xff0c;你可以快速…...

《数据结构》--队列【各种实现,算法推荐】

一、认识队列 队列是一种常见的数据结构&#xff0c;按照先进先出&#xff08;FIFO&#xff0c;First In First Out&#xff09;的原则排列数据。也就是说&#xff0c;最早进入队列的元素最先被移除。队列主要支持两种基本操作&#xff1a; 入队&#xff08;enqueue&#xff0…...

面试八股文对校招的用处有多大?--GDB篇

前言 1.本系列面试八股文的题目及答案均来自于网络平台的内容整理&#xff0c;对其进行了归类整理&#xff0c;在格式和内容上或许会存在一定错误&#xff0c;大家自行理解。内容涵盖部分若有侵权部分&#xff0c;请后台联系&#xff0c;及时删除。 2.本系列发布内容分为12篇…...

Unity用VS打开FGUI脚本变成杂项怎么处理?

在Unity中使用Visual Studio&#xff08;VS&#xff09;打开FGUI脚本时&#xff0c;如果脚本显示为杂项文件&#xff0c;这通常意味着VS没有正确识别或关联这些脚本文件。以下是一些解决此问题的步骤&#xff1a; 对惹&#xff0c;这里有一个游戏开发交流小组&#xff0c;大家…...

交叉熵损失函数(Cross-Entropy Loss Function)解释说明

公式 8-11 的内容如下&#xff1a; L ( y , a ) − [ y log ⁡ a ( 1 − y ) log ⁡ ( 1 − a ) ] L(y, a) -[y \log a (1 - y) \log (1 - a)] L(y,a)−[yloga(1−y)log(1−a)] 这个公式表示的是交叉熵损失函数&#xff08;Cross-Entropy Loss Function&#xff09;&#…...

和外部机构API交互如何防止外部机构服务不可用拖垮调用服务

引言 在现代的分布式系统和微服务架构中&#xff0c;服务之间的通信往往通过API进行&#xff0c;尤其是在与外部机构或第三方服务进行交互时&#xff0c;更需要通过API实现功能的集成。然而&#xff0c;由于外部服务的可控性较差&#xff0c;其服务的不可用性&#xff08;如响…...

自动猫砂盆真的有必要吗?买自动猫砂盆不看这四点小心害死猫。

现在越来越多铲屎官选择购买自动猫砂盆来代替自己给猫咪铲屎&#xff0c;可是自动猫砂盆真的有必要吗&#xff1f;要知道&#xff0c;在现在忙碌的生活中&#xff0c;有很多人因为工作上的忙碌而不小心忽视了猫咪&#xff0c;猫咪的猫砂盆堆满粪便&#xff0c;要知道猫砂盆一天…...

国外解压视频素材哪里找?五个海外解压视频素材网站推荐

国外解压视频素材哪里找&#xff1f;五个海外解压视频素材网站推荐 如果你正在寻找国外的解压视频素材&#xff0c;那么今天这篇文章一定能帮助你。无论是修牛蹄、洗地毯&#xff0c;还是切肥皂、玩解压游戏等&#xff0c;下面分享的几个网站都是你找到高质量海外解压视频素材…...

Android一个APP里面最少有几个线程

Android一个APP里面最少有几个线程 参考 https://www.jianshu.com/p/92bff8d6282f https://www.jianshu.com/p/8a820d93c6aa 线程查看 Android一个进程里面最少包含5个线程&#xff0c;分别为&#xff1a; main线程(主线程&#xff09;FinalizerDaemon线程 终结者守护线程…...

3分钟搞定网易云音乐NCM解密:ncmdump工具让你的音乐随处播放

3分钟搞定网易云音乐NCM解密&#xff1a;ncmdump工具让你的音乐随处播放 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾为网易云音乐下载的歌曲只能在特定客户端播放而烦恼&#xff1f;当你想要在车载音响、智能音箱或其他…...

Linux蓝牙SPP连接保姆级教程:从手机App到开发板双向通信实战(Android/iOS)

Linux蓝牙SPP连接实战&#xff1a;手机与开发板双向通信全指南 当智能家居控制面板需要无线接收手机指令&#xff0c;或是工业传感器数据要通过移动设备实时查看时&#xff0c;蓝牙串口协议(SPP)便成为最便捷的桥梁。不同于常见的蓝牙音频传输&#xff0c;SPP提供了稳定的数据通…...

HPM6750 CAN FD实战:从波特率配置到高效收发,避坑指南

1. 项目概述&#xff1a;从经典CAN到CAN FD的实战入门作为一名长期在嵌入式领域摸爬滚打的开发者&#xff0c;我深知现场总线技术&#xff0c;尤其是CAN总线&#xff0c;在工业控制、汽车电子等领域的核心地位。随着数据吞吐量需求的激增&#xff0c;经典CAN的1Mbps带宽逐渐捉襟…...

RStudio 2026最新版下载:一键直达官网,解锁数据分析新体验

RStudio免费版安装包下载地址&#xff1a;RStudio安装包 RStudio 是 R 语言专用的集成开发环境&#xff0c;简单说就是 R 语言的 “超级工作台”。它不替代 R 语言&#xff0c;而是必须搭配 R 语言使用&#xff0c;负责把 R 语言的能力可视化、流程化、高效化。 RStudio 的核心…...

Arduino与FastLED库驱动WS2812B实现彩虹闪烁可穿戴灯光系统

1. 项目概述&#xff1a;用代码点亮创意的可穿戴灯光几年前&#xff0c;我第一次尝试把LED灯带缝进一件卫衣的帽子里&#xff0c;初衷很简单&#xff0c;就是想在做夜跑时更醒目一些。但当那些WS2812B灯珠第一次随着音乐节奏亮起彩虹般流动的色彩时&#xff0c;我知道我打开了一…...

Golang怎么实现HTTP请求取消_Golang如何用context取消正在进行的HTTP请求【实战】

HTTP客户端默认不取消请求是设计选择&#xff0c;需显式通过context.Context传递取消信号&#xff1b;必须用NewRequestWithContext、禁用Client.Timeout、确保Transport组件响应同一ctx。为什么 http.Client 默认不取消请求&#xff1f;Go 的 http.Client 本身不自动响应外部中…...

原神帧率解锁终极指南:免费突破60FPS限制的完整教程

原神帧率解锁终极指南&#xff1a;免费突破60FPS限制的完整教程 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 原神帧率解锁工具&#xff08;genshin-fps-unlock&#xff09;是一款开源…...

数据笔记:LargeST——如何构建与评估一个面向未来的大规模交通预测基准数据集

1. 为什么我们需要LargeST这样的交通预测基准数据集 交通预测是智慧城市建设的核心技术之一&#xff0c;但长期以来这个领域面临一个尴尬局面&#xff1a;算法模型越来越复杂&#xff0c;却缺乏足够规模和质量的数据来验证其真实效果。这就像给赛车手一辆玩具车来测试性能——模…...

微软DebugMCP:可视化调试MCP协议,解决AI与工具通信黑盒问题

1. 项目概述&#xff1a;当你的AI助手开始“自言自语”&#xff0c;你需要一个调试器 最近在折腾AI应用开发的朋友&#xff0c;估计没少跟各种“智能体”打交道。无论是基于OpenAI的GPTs&#xff0c;还是那些能联网、能调用工具的自定义助手&#xff0c;它们背后的核心通信协议…...

打破平台壁垒:Windows上安装APK文件的完整解决方案

打破平台壁垒&#xff1a;Windows上安装APK文件的完整解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾想过在Windows电脑上直接运行安卓应用&#xff…...