VitePress 中如何自定义首页的 hero 图片路径?

博主林莹 阅读 11

我在用 VitePress 搭建文档站,想改首页 hero 区域的背景图,但图片放在 public 目录下引用不到,试了相对路径也不行,一直 404。

配置里写的是 heroImage: '/logo.png',图片确实放在 public/logo.png 了,但页面加载时请求的是 /docs/logo.png,明显路径不对。是不是 VitePress 对 public 的处理有啥特别规则?

我来解答 赞 5 收藏
二维码
手机扫码查看
1 条解答
程序员司翰
VitePress 的 public 目录跟普通 Vite 项目不太一样,路径处理有点坑。

问题在于你很可能配置了 base: '/docs/'。VitePress 的 base 会影响所有资源的路径,但 public 目录的文件在构建时会被直接复制到输出目录根目录,不受 base 影响。所以你写 heroImage: '/logo.png',实际请求的是 /docs/logo.png,但文件其实在 /logo.png

几个解决办法:

方法一:去掉 base 配置(如果可以的话)
如果你的站点不是部署在子路径,就把 base 改成 '/',这样就正常了。

方法二:用完整的绝对路径
直接写 heroImage: '/docs/logo.png',这样就匹配上你实际的请求路径了。

方法三:把图片放到 .vitepress/public 目录下
这是更推荐的做法。VitePress 会自动处理这个目录下的资源路径,不用纠结 base 的问题。直接 heroImage: '/logo.png' 就行,开发和构建都能正常工作。

简单说就是你配置了 base 但 public 目录的文件路径没跟上,改成方法三最省心。
点赞 1
2026-03-10 22:02