首页 > 其他分享 >在vite环境中动态导入静态资源

在vite环境中动态导入静态资源

时间:2023-09-10 17:22:45浏览次数:32  
标签:静态 路径 URL 导入 meta url 打包 vite

背景

现在有一个场景,有很多的选项卡,点击不同选项卡实现图片的切换。

image

当我们动态的切换图片url时,会发现图片找不到,报404.

原因

在vite项目中,运行的时候,其实是打包后的代码,所以,图片需要的是打包后的图片路径。

vite在一些情况下会自动转喊路径

css中的静态路径
img中的src(静态路径)

所以我们希望vite帮我们自动转化路径

解决办法

放public目录中
那么它打包后的路径和打包前的路径是一样的,缺点是打包后的文件名丢失了文件指纹。

使用import函数

这个vite也会自动转化。

image

这种方法打包后会产生额外的js文件(用于转化路径的),增加网络请求。

使用new URL() + import.meta.url

const imgUrl = ref()
const tabs = (path: any)=> {
  imgUrl.value = new URL(`../../assets/img/${path}.jpg`, import.meta.url)
}

mport.meta.url,它用作基准 URL。基准 URL 决定了如何解析第一个参数中的相对路径。import.meta.url 表示当前模块的 URL,因此它将用作基准 URL。

标签:静态,路径,URL,导入,meta,url,打包,vite
From: https://www.cnblogs.com/zychuan/p/17691522.html

相关文章

  • flask_migrate无法导入MigrateCommand解决方法
    flask_migrate无法导入MigrateCommand解决方法解决方法下载flask_migrate的2.7.0版本fromflask_migrateimportMigrate,MigrateCommand......
  • Zeppelin导入额外jar包方法
    Zeppelin导入额外jar包方法方法一:为特定用户导入特定jar包方法二:永久导入jar包方法三:临时导入jar包方法一:为特定用户导入特定jar包方法参考这篇博客:zeppelin为特定用户添加额外jar包方法二:永久导入jar包在zeppelin启动的环境变量中永远导入jar包exportSPARK_SUBMIT_OPTIONS="--j......
  • 不使用vmtools和共享文件夹将虚拟机外文件导入虚拟机内(windows版)
    不使用vmtools和共享文件夹将虚拟机外文件导入虚拟机内(windows版)前言在某种情况下,例如经过一些设置使得虚拟机上不了网,你无法通过网络下载vmtools安装;然后虚拟机ip网段和本机的网段不同,你不能利用共享文件夹;或者要搭建蜜罐虚拟机,要清除虚拟机里的"虚拟机痕迹"。利用U......
  • 数据泵导入导出监控
    数据泵导入导出监控通过两个视图DBA_DATAPUMP_JOBS;DBA_DATAPUMP_SESSIONS;select*fromDBA_DATAPUMP_JOBS;select*fromDBA_DATAPUMP_SESSIONS;查看Impdp控制台jobstatus(导出同理)$impdpuser/xxxattach=SYS_IMPORT_FULL_01statusstart_jobstop_job具体......
  • 【js】【统计次数】静态页面访问次数 js页面请求次数统计
    ​效果: 源码:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>静态页面访问量统计</title></head><body><scripttype="text/javascript">varpgcoun......
  • 数据通信网络之IPv6静态路由
    文章及资源归档至公众号【AIShareLab】,回复通信系统与网络可获取。一、目的掌握路由器的IPv6基础配置。掌握静态IPv6路由的基础配置。理解IPv6数据报文的路由过程。二、拓扑如图1所示,三台路由器R1、R2和R3分别通过相应物理接口进行连接,其中,R1及R3各自下联一个网段......
  • Centos3个虚拟机的导入
    教程:08-Centos操作系统的虚拟机导入_哔哩哔哩_bilibili安装包在该视频底下有链接。 1.点击编辑-->管理员权限-->点击NAT模式这一行然后更改网关2.点击NAT设置  3.配置Windows本地虚拟网卡-->找到网络连接 -->找到VMnet8然后右键点击属性 -->双击Internet协议......
  • 导入Demo工程
            ......
  • oracle导出导入数据库
    先捋一下oracle的概念oracle的概念稍微有点复杂:用户账号和表空间绑定,表空间分为永久表空间和临时表空间,通过表空间设置数据库的大小等参数,在表空间里面进行新建数据表等操作,oracle的表空间等同于mysql的数据库tnsname里面的server是oracle服务端的连接配置,是用来连接数据库的......
  • 导入Demo数据
              ......