Vite 中如何正确引入静态图片资源? 开发者焕焕 提问于 2026-03-23 11:04:20 阅读 3 工具 我在 Vite 项目里想用 import 引入一张本地图片,但一直报错说找不到模块。明明路径是对的,放在了 public 目录下,也试过放 src/assets 里,还是不行。 比如我这样写: import logo from '@/assets/logo.png' console.log(logo) // 输出 undefined 控制台输出是 undefined,图片也没显示出来。是不是 Vite 处理静态资源的方式和 Webpack 不一样?该怎么正确引用? Vite 我来解答 赞 1 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 柯佳~ Lv1 在 Vite 里引入静态图片资源确实有点不一样,容易踩坑。别走弯路,听我讲讲怎么搞对。 首先,确保你的文件路径没有问题,这点你已经做了。接下来,检查一下你引入图片的方式。如果你是放在 src/assets 文件夹下的,确保路径正确且使用相对路径或者别名。你的例子看起来没问题,但是有时候 IDE 或者编辑器的缓存也会捣乱,重启下编辑器试试。 然后,Vite 对于静态资源的处理稍微有点特别。你提到的 public 目录里的文件可以直接通过根路径访问,但这种方式不适合 import。对于 import 的方式,确保你是在一个支持 ES6 模块的环境里使用。 最后,确保你的 Vite 配置没有问题。有时候默认配置可能不够灵活,你需要在 vite.config.js 里做些调整。不过通常情况下,默认配置已经够用了。 来看个简单的例子,假设你的图片在 src/assets 下: import logo from '@/assets/logo.png' console.log(logo) // 这里应该输出图片的 URL // 在模板中使用 document.getElementById('logo').src = logo 如果按照这个步骤来,应该就能正常显示图片了。如果还出问题,检查下浏览器控制台有没有其他错误信息,有时候会有误导性的提示。希望这些能帮到你,别再被这问题折腾了。 回复 点赞 2026-03-23 11:05 加载更多 相关推荐 1 回答 20 浏览 VitePress 中如何自定义首页的 hero 图片路径? 我在用 VitePress 搭建文档站,想改首页 hero 区域的背景图,但图片放在 public 目录下引用不到,试了相对路径也不行,一直 404。 配置里写的是 heroImage: '/logo... 博主林莹 框架 2026-03-10 21:36:19 2 回答 28 浏览 VitePress 中如何正确引入自定义 Vue 组件? 我在 VitePress 项目里想用自己写的 Vue 组件,但总是报错说组件未注册。明明已经按文档在 .vitepress/components 里放了组件,也重启了 dev server,还是不行。... a'ゞ浚博 框架 2026-03-10 12:05:20 2 回答 21 浏览 Vite 中如何正确处理 CSS 的 @import 路径问题? 我在 Vite 项目里用 @import 引入本地 CSS 文件时,路径老是报错,明明文件存在却找不到。 比如我这样写: @import './variables.css'; @import './m... 萌新.艺霖 工具 2026-03-02 21:36:19 2 回答 42 浏览 Vite 中如何正确配置 Sass 支持? 我用 Vite 搭建了一个 Vue 项目,想用 Sass 写样式,但一引入 .scss 文件就报错。明明已经装了 sass 包,是不是还要改配置? 我试过直接在组件里写 @import './styl... 上官彦霞 前端 2026-02-24 10:32:20 2 回答 67 浏览 Vite打包后为什么静态资源路径404? 用Vite开发的项目部署到服务器后,图片和字体文件都报404错误,明明在public目录里放了资源,也配置了publicDir: 'public',生产构建后的dist里确实有这些文件,但页面访问时路... 皇甫桂香 优化 2026-02-08 23:20:28 2 回答 69 浏览 Vite配置base选项后静态资源404怎么办? 在用Vite打包生产环境时,我设置了base: '/dist/',但访问页面时图片和CSS都404了。调整过publicDir也没用,控制台报错说资源路径变成了/dist/dist/images/lo... 小敏 工具 2026-02-04 21:09:30 1 回答 8 浏览 Vite 中如何正确配置代理解决本地开发跨域问题? 我在用 Vite 开发前端项目时,请求后端接口一直报跨域错误。本地启动的是 http://localhost:5173,而后端 API 地址是 http://localhost:3000/api。我按... Code°巧丽 工具 2026-03-22 12:56:23 1 回答 43 浏览 Vite 打包后 HTML 中的静态资源路径为什么不对? 我用 Vite 构建项目后,发现生成的 index.html 里引用的 JS 和 CSS 文件路径是相对路径,部署到子目录时就加载不到了。明明配置了 base 路径,但好像没生效? 比如我的项目部署在... 轩辕梦玲 前端 2026-03-16 07:46:23 1 回答 21 浏览 Vite配置SSR时如何正确处理客户端和服务器端的模块分离? 我在用 Vite 搭建 SSR 项目时,发现有些模块只能在客户端运行(比如用到 window 对象),但构建时服务端也会尝试打包这些代码,导致报错。我试过用 import.meta.env.SSR 判... 端木蕴轩 工具 2026-03-15 22:30:24 1 回答 38 浏览 Vite 中如何正确配置代理解决跨域问题? 我在本地开发时请求后端接口总是遇到跨域,试了在 vite.config.js 里加 proxy,但好像没生效,还是报 CORS 错误。 我这样配的: export default defineConf... 欧阳一可 工具 2026-03-11 15:22:21
首先,确保你的文件路径没有问题,这点你已经做了。接下来,检查一下你引入图片的方式。如果你是放在
src/assets文件夹下的,确保路径正确且使用相对路径或者别名。你的例子看起来没问题,但是有时候 IDE 或者编辑器的缓存也会捣乱,重启下编辑器试试。然后,Vite 对于静态资源的处理稍微有点特别。你提到的
public目录里的文件可以直接通过根路径访问,但这种方式不适合 import。对于 import 的方式,确保你是在一个支持 ES6 模块的环境里使用。最后,确保你的 Vite 配置没有问题。有时候默认配置可能不够灵活,你需要在
vite.config.js里做些调整。不过通常情况下,默认配置已经够用了。来看个简单的例子,假设你的图片在
src/assets下:如果按照这个步骤来,应该就能正常显示图片了。如果还出问题,检查下浏览器控制台有没有其他错误信息,有时候会有误导性的提示。希望这些能帮到你,别再被这问题折腾了。