vike-vue-content

把文档站点预渲染为静态文件,以及部署到子路径时的 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()],
})

设置 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 注入,因此同一份组件库产物可以部署到任意子路径,无需重新构建。