Vite中不能使用require,该怎么动态获取静态图片资源?

Posted 举止优雅的猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vite中不能使用require,该怎么动态获取静态图片资源?相关的知识,希望对你有一定的参考价值。


之前有些过一篇vite中不能使用require的问题:​​关于Vite不能使用require问题​

也写过一篇Vue3中引入图片:​​Vue3加载本地assets图片​​ 

大家有兴趣可以去看下,主要就是介绍了安装第三方插件可以在项目中使用require和vue3引入图片。

这篇主要是跟大家分享下还有其他的方式

import 

首先当然是可以使用import引入的 

<template>
<div>欢迎页</div>
<img :src="myImg" alt="">
</template>
<script setup lang="ts">
import assetsImg from @/assets/logo.png

const myImg: string = assetsImg
</script>

这种方式自然是没问题 

new URL(url, import.meta.url)

另外一种就是vite给我们提供的 new URL(url, import.meta.url)

中文网:​​https://vitejs.cn/guide/assets.html#the-public-directory​​ 

我们可以在@/utils/index.ts中向外暴露一个方法,拱外界使用 

@/utils/index.ts 

/**
* 获取静态图片资源
* @param name
* @returns
*/
export const getImageUrl = (name: string): string => new URL(`../$ name `, import.meta.url).href

然后组件中使用: 

<template>
<img :src="myImg" alt="">
</template>
<script setup lang="ts">
import getImageUrl from @/utils

const str = assets/logo.png

const myImg: string = getImageUrl(str)
</script>

以上是关于Vite中不能使用require,该怎么动态获取静态图片资源?的主要内容,如果未能解决你的问题,请参考以下文章

vite 动态 import 引入打包报错解决方案

vue3+vite+ts 配置别名@报错

Vue/Vite vanilla 设置上的“TypeError:无法获取动态导入的模块”

vite 中动态引入图片路径

vite2 读取json文件的几种方法

vue使用require.context,动态变量怎么办