下面的代码:
<img src="@/assets/svgs/loginx.svg" key="1" alt="" class="w-550px" />
改成:data.img是通过逻辑拿的,图片文件在相应目录也存在,这种为什么就是不显示呢??
<img :src="data.img" key="1" alt="" class="w-550px" />
下面的代码:
<img src="@/assets/svgs/loginx.svg" key="1" alt="" class="w-550px" />
改成:data.img是通过逻辑拿的,图片文件在相应目录也存在,这种为什么就是不显示呢??
<img :src="data.img" key="1" alt="" class="w-550px" />
打包的时候,构建工具会把html、css中引入url当作依赖,最终产物中url经过处理。比如src="./img.png",在生产构建后可能会是 /assets/img.2d8efhg.png。
js变量中的data.img,构建工具会当作字符串,完整保留。
js要使用依赖的话,需要通过import或者require引入对应的文件,告诉构建工具这里是一个依赖,然后赋值赋值给变量。
具体的原因可以参考对应的构建工具,插件的文档
webpack的话,参考vuecli文档
你得先用import.meta.glob
把@/assets/svgs
下面的所有资源引入,然后根据资源自己生成一个mapping
,用路径字符串对应一个文件,如
{
'@/assets/svgs/loginx.svg': svgFile // 这是你拿到的那个文件
}
之后再通过 data.img
获取到对应的文件就行了
3 回答3.2k 阅读✓ 已解决
4 回答3.4k 阅读
1 回答2.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
5 回答1.9k 阅读
可以类似这样写: