我遇到了一个错误,我从Vue3组件中的图像导入属性动态生成了一个URL,但在构建后它变得未定义
- 用于在Vue组件中生成URL和标签的脚本
const imagePath = computed(() => { return new URL(`../assets/${props.imgPath}.png`,
import.meta.url).href
<img :src="imagePath" />
- 构建
<img class="img" src="http://localhost:4173/undefined />
后未定义URL
只有两个出许多图像是未定义后,建立这使得它很难牵制问题
我尝试过修改vite.config.ts,特别是build部分下的assetInlineLimit,但到目前为止没有任何效果
3条答案
按热度按时间7vux5j2d1#
我遇到了同样的问题,发现您需要将构建目标设置为“es2020”,因为默认的构建目标中没有定义 meta。在此页面的底部有一个小注解:https://vitejs.dev/guide/assets.html
zlwx9yxi2#
我遇到了同样的问题,解决方案在我的情况下,图像名称必须像 prop 名称,因为它的大小写敏感,所以我改变了图像名称从“myimage.png”到“myiMage.png”
zour9fqk3#
我有点晚了。但是对于任何还有这个问题的人,
与OP类似,这将不起作用。
它将返回未定义。(http://localhost:5173/src/assets/icons/undefined)
只需将模板文本移动到变量中。
现在一切都正常了。
显然,new URL不能很好地与模板文字一起工作。
有多个bug报告,可能会在将来修复。
我写这篇文章时正在使用vite 4.0。