# 部署

> 如何将构建好的 htmlpress 站点发布到托管平台。

`htmlpress build` 会在 `.htmlpress/build/` 中生成一个完全静态的站点：每个页面对应一个 `.html` 文件，路径与其源文件相同；此外还有 `404.html`、`robots.txt`、 `sitemap.xml`（设置了 `site` 时）、`_headers` 文件、某种语言没有自己首页时的 `_redirects` 文件、 供智能体使用的 [Markdown 副本和 `llms.txt`](/zh/customization/ai-agents/)、 位于 `_htmlpress/` 下的主题与组件脚本，以及项目中的其他所有文件。把这个目录放到任意静态托管平台上，站点就上线了。

以下指南涵盖最常见的部署目标。任选其一即可：每篇指南都是独立完整的，同时给出手动命令和 CI 工作流。

## 托管平台

### [静态托管](/zh/deployment/static-hosting/)

任何能提供文件目录服务的主机：nginx、S3 + CloudFront、Caddy 等。

### [GitHub Pages](/zh/deployment/github-pages/)

免费、原生集成 git，非常适合部署在 `/repo-name/` 路径下的项目站点。

### [Cloudflare](/zh/deployment/cloudflare/)

Workers + 静态资源。`htmlpress.dev` 本身就采用这种方案。

### [Vercel](/zh/deployment/vercel/)

与 Git 连接，每个拉取请求都有预览，域名零配置。

### [Netlify](/zh/deployment/netlify/)

与 Git 连接，支持分支部署、原子发布和内置表单处理。

## 各指南的共同前提

- 你在项目根目录运行 `htmlpress build`，输出位于 `.htmlpress/build/`。在 CI 中，`npx gethtmlpress build` 无需预先安装即可运行同一个二进制文件；其他安装渠道见 [简介](/zh/introduction/)。
- 如果你需要 `sitemap.xml`、`robots.txt` 中的 sitemap 行、规范 URL 和绝对路径的社交标签，需要在 `htmlpress.yaml` 中设置 `site`；见 [站点元数据](/zh/customization/site-metadata/)。
- 只有当站点挂载在子路径下时（例如 GitHub Pages 项目站点）才需要 `base`。只有 [GitHub Pages](/zh/deployment/github-pages/) 指南涉及这一点。
