我将 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 是否可以使用它。