# 部署指南

当前项目不依赖 Node.js 构建。纯静态版本可以部署到 GitHub Pages；启用真实 AI 功能时，请使用 Cloudflare Pages + Pages Functions，详细步骤见 `docs/CLOUDFLARE_DEPLOYMENT.md`。

## 本地预览

```powershell
python -m http.server 8000
```

打开：

```text
http://localhost:8000
```

也可以直接双击 `index.html` 预览，但本地服务器方式更接近部署后的访问效果。

## 发布前检查

发布前运行：

```powershell
python scripts\run_acceptance.py
```

该命令会检查静态站点结构、UTF-8 编码、JSON 资产、单元测试、数据可靠性 pipeline、CSV schema、图片索引、发布包和交付审计。

## GitHub Actions

仓库包含两个 workflow：

```text
.github/workflows/ci.yml
.github/workflows/pages.yml
```

`Acceptance checks` workflow：

- 触发时机：push、pull request、手动触发。
- 作用：运行 `python scripts/run_acceptance.py`。
- 目的：在合并或发布前自动验证交付物。

`Deploy static site to GitHub Pages` workflow：

- 触发时机：推送到 `main` 分支或手动触发。
- 作用：先运行验收，再发布静态站点到 GitHub Pages。
- 目的：确保未通过验收的版本不会自动上线。

## GitHub Pages 自动部署

推荐方式：GitHub Actions。

1. 在 GitHub 新建仓库并推送项目。
2. 进入仓库 `Settings -> Pages`。
3. Source 选择 `GitHub Actions`。
4. 推送到 `main` 分支。
5. 等待 `Deploy static site to GitHub Pages` workflow 通过。
6. 打开生成的 Pages 链接，检查 `index.html`、`portfolio.html` 和 `docs/prototype.html`。

## 分支根目录部署

如果不用 Actions，也可以：

1. 进入 `Settings -> Pages`。
2. Source 选择 `Deploy from a branch`。
3. Branch 选择 `main`。
4. 目录选择 `/root`。
5. 保存后等待 GitHub 生成访问链接。

使用该方式时，GitHub Pages 不会自动拦截未验收版本，所以发布前务必本地运行 `python scripts\run_acceptance.py`。

## 兜底页面

仓库根目录包含 `404.html`。GitHub Pages 访问不存在路径时，会展示兜底页，并提供返回产品 Demo 和项目作品集的入口。
