# Netlify

> 通过 Netlify 的 git 集成或 CLI 部署，支持分支预览和原子发布。

Netlify 读取项目根目录下一个小小的 `netlify.toml` 来获取构建命令和发布目录。其余部分（Git 预览、原子部署、自定义域名）都会自动处理。Netlify 还会读取每次构建写出的 `_headers` 文件，并用构建产出的 `404.html` 响应未知路径。

## 构建站点

```sh
htmlpress build
```

输出位于 `.htmlpress/build/`。

## 配置 `netlify.toml`

```
[build]
command = "npx gethtmlpress build"
publish = ".htmlpress/build"
```

Netlify 只需要这些。如果你想在本地模拟平台的边缘行为，同一个文件还能启用 `netlify dev`。

## 通过 git 集成部署

推荐方式：在 [app.netlify.com/start](https://app.netlify.com/start) 连接你的仓库。Netlify 会读取 `netlify.toml`、运行构建，并把每次推送到 `main` 的提交发布到生产环境。其他分支和 PR 会自动获得独立的部署预览 URL。

## 通过 CLI 部署

用于一次性或脚本化部署：

```sh
htmlpress build
netlify deploy --prod --dir=.htmlpress/build
```

首次运行时会提示执行 `netlify login`，并把目录关联到一个站点。

## 使用 GitHub Actions 部署

Netlify 的 git 集成通常已经足够，但工作流可以让你先测试再部署：

```yaml
name: deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-node@v4
        with:
          node-version: 24
      - run: npx gethtmlpress build
      - uses: nwtgck/actions-netlify@v3
        with:
          publish-dir: .htmlpress/build
          production-deploy: true
        env:
          NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }}
          NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }}
```

在 **User settings → Applications → Personal access tokens** 中获取认证令牌，在 **Site settings → General** 中获取站点 ID。

## 自定义域名

在站点控制台中，进入 **Domain management → Add a domain**。Netlify 会配置 DNS 和证书。在 `htmlpress.yaml` 中把同一域名设为 `site`。

## 另请参阅

- [站点元数据](/zh/customization/site-metadata/)：`site` 用于填充 sitemap 中的 URL。
- [部署](/zh/deployment/)：返回托管平台索引。
