在我的Vue vite应用程序中,我试图在html元素中使用svg文件作为src属性。
<img class="..." src="/src/assets/images/bg/main-banner.svg" alt="Background">
在开发中,它如预期的那样工作。在生产过程中,图像的src属性是对象。我尝试了Vite文档的每一种方法,但这些方法都不能解决这个问题。我使用vite- svg -加载程序,所以我可以使用svg文件作为Vue组件。这会否与这个问题有关?
谢谢。
发布于 2022-07-05 02:08:32
用vite-svg-loader
vite-svg-loader
会导致*.svg
在默认情况下解析为Vue组件,这将被转换为<img>.src
属性的字符串,从而导致[object Object]
。
要将*.svg
作为URL加载,您可以选择默认情况下
// vite.config.js
import { defineConfig } from 'vite'
import svgLoader from 'vite-svg-loader'
export default defineConfig({
plugins: [
svgLoader({
defaultImport: 'url',
}),
],
})
...or使用进口param
<img src="@/assets/logo.svg?url" />
无vite-svg-loader
如果您只想获取*.svg
的URL,实际上不需要vite-svg-loader
,因为这是一个内置的特性。删除vite-svg-loader
应该可以解决这个问题:
// vite.config.js
import { defineConfig } from 'vite'
// import svgLoader from 'vite-svg-loader' ⛔️ delete
export default defineConfig({
plugins: [
// svgLoader() ⛔️ delete
],
})
发布于 2022-07-04 08:32:53
尝试将其作为模块导入,然后将其绑定到src
属性:
import mainBanner "~/assets/images/bg/main-banner.svg"
<img class="..." :src="mainBanner" alt="Background">
https://stackoverflow.com/questions/72853762
复制相似问题