【发布时间】:2021-05-30 19:41:50
【问题描述】:
我正在使用 Vue 3 和 Vite。在 Vite 构建生产后,我遇到了动态 img src 的问题。静态img src没有问题。
<img src="/src/assets/images/my-image.png" alt="Image" class="logo"/>
它在两种情况下都运行良好:在开发模式下运行时以及在 vite 构建之后。但是我有一些图像名称存储在动态加载的数据库中(菜单图标)。在这种情况下,我必须像这样编写路径:
<img :src="'/src/assets/images/' + menuItem.iconSource" />
(menuItem.iconSource 包含图像的名称,例如“my-image.png”)。
在这种情况下,它在以开发模式运行应用程序时有效,但在生产构建后无效。当 Vite 为生产构建应用程序时,路径会发生变化(所有资产都放入 _assets 文件夹中)。静态图像源由 Vite 构建处理并相应更改路径,但组合图像源并非如此。它只是将/src/assets/images/ 作为一个常量并且不会更改它(当应用程序抛出 404 not found for image /src/assets/images/my-image.png 时,我可以在网络监视器中看到它)。
我试图找到解决方案,有人建议使用require(),但我不确定vite是否可以使用它。
【问题讨论】: