1.4 KiB
1.4 KiB
title, description, outline
| title | description | outline |
|---|---|---|
| 门户部署 | 开源项目门户的构建与部署方式 | deep |
门户部署
门户是一个独立的 VitePress 工程,产物是纯静态文件。
本地构建
npm ci
npm run build
产物在 .vitepress/dist/。
容器部署
docker compose -f deploy/docker-compose.yml up -d --build
默认发布在宿主机 127.0.0.1:8020,容器内监听 80。
两种路径形态
构建参数 SITE_BASE 决定站点资源前缀:
| 形态 | 参数 | 访问方式 |
|---|---|---|
| 子路径(过渡形态,无独立域名) | /www/(默认) |
挂在已有网关的 /www/ 路径下 |
| 独立域名 | / |
站点独占域名根路径 |
SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build
两者内容完全同源,切换只改构建参数与入口配置,页面不用改。
VitePress 产物里的资源引用是绝对路径(
<base>assets/xxx),base 与 nginx 的 location 形态必须配套,混用会出现「页面 200 但 JS/CSS 全 404」的白屏。镜像构建脚本按SITE_BASE自动选对应的 nginx 配置。
新增项目
项目清单由 data/projects.ts 单一注册表驱动,新增项目不需要改动站点其它部分:
- 在注册表里加一条记录
- 写
pages/projects/<id>/index.md详情页
构建前会自动校验注册表与详情页目录是否一一对应。