把文档站点预渲染为静态文件,以及部署到子路径时的 base 处理。
部署
预渲染为静态站点
接入 vike-vue-content 后,每个 docs 入口的 +onBeforePrerenderStart.ts 会自动枚举该 collection 的所有内容路径并逐页生成 HTML。只要在全局 config 打开 prerender:
// pages/+config.ts
export default {
prerender: true,
extends: [vikeVue, vikeVueContent],
}然后构建:
npm run build产物为纯静态文件,可直接部署到任意静态托管(GitHub Pages、Netlify、Vercel、Nginx 等)。
部署到子路径
如果站点不在域名根目录,而是部署在子路径下(如 https://example.com/vike-vue-content/),在 vite.config.ts 里设置 base:
// vite.config.ts
import vue from '@vitejs/plugin-vue'
import vike from 'vike/plugin'
import { defineConfig } from 'vite'
export default defineConfig({
base: '/vike-vue-content/',
plugins: [vike(), vue()],
})Link 与 base
设置 base 后,Vite 会自动给静态资源加前缀,但不会自动处理 Markdown 或模板里的站内链接。使用框架提供的 Link 组件,它会在运行时读取 Vike 注入的 base 并自动拼接:
<Link href="/zh-CN/overview/getting-started">开始</Link>
<!-- base = "/vike-vue-content/" 时渲染为: -->
<!-- <a href="/vike-vue-content/zh-CN/overview/getting-started">开始</a> -->base 由 Vike 在运行时通过 pageContext._baseServer 注入,因此同一份组件库产物可以部署到任意子路径,无需重新构建。