You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Vite中处理静态资源?SVG导入失败问题求助

解决Vite中SVG导入失败的问题

问题根源

你把SVG文件放在了public/img/目录下,但尝试用import语句导入——这是错误的用法。Vite对public目录的资源是作为静态资源直接部署的,不属于模块系统的解析范围,所以import无法找到该文件。

两种解决方案

方案1:直接使用静态资源路径(推荐)

不需要import,直接在代码中使用该SVG的静态路径:

// src/resources/articles.ts
const imgUrl = '/img/googlenews.svg';
// 后续使用这个路径即可,比如赋值给img的src

因为你的Vite配置中base: '',所以路径是相对于项目根目录的/img/googlenews.svg,打包后该文件会被直接复制到dist/img/目录下,路径保持一致。

方案2:将SVG移到src目录下使用import

如果一定要用import导入,需要把SVG文件从public/img/移到src目录内(比如src/img/googlenews.svg),然后修改导入路径:

// src/resources/articles.ts
import imgUrl from '../img/googlenews.svg';

此时Vite会将该SVG作为模块处理,打包时会按照你vite.config.ts中assetFileNames的规则,输出到dist/img/目录下。

补充说明

Vite官方文档中的示例是导入src目录内的图片,所以可以用import;而public目录的资源是为了直接通过URL访问而设计的,不需要经过模块导入流程。

内容的提问来源于stack exchange,提问作者starlings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:52:21