デプロイ

デプロイ

astra build は自己完結したディレクトリを生成するので、任意の静的ホストにそのままデプロイできます。astra.config.jsondeploy を指定すると、HTML と一緒にプラットフォーム固有の設定ファイルが書き出されます。

設定

{
  "deploy": "github-pages"
}

実行:

astra build --out ./dist

対応プラットフォーム

プラットフォームdeploy の値生成されるファイル
静的(デフォルト)staticなし
Cloudflare Pages / Workerscloudflare_routes.json
GitHub Pagesgithub-pages または github.nojekyll、CNAME(指定時)
Vercelvercelvercel.json
Netlifynetlify_headers、_redirects
Deno Deploydenoなし(そのまま配信される)
Node.jsnodeなし

GitHub Pages

{
  "deploy": "github-pages",
  "base": "/my-repo/",
  "github": {
    "repo": "mizchi/my-repo",
    "branch": "gh-pages"
  }
}

GitHub Pages はユーザー / 組織サイトを /<repo>/ 配下で配信するため、base をリポジトリパスに合わせる必要があります。.nojekyll が出力されるので、_ で始まるファイル(_astro チャンクなど)が除外されません。

Cloudflare Pages

{
  "deploy": "cloudflare",
  "base": "/"
}

Cloudflare のエッジランタイムが静的 / 動的パスを区別できるよう _routes.json が出力されます。同じ出力に Functions を共存させても衝突しません。

検索インデックス (pagefind)

Astra 自体は検索インデックスを生成しません。全文検索が必要なら、ビルド出力に対して pagefind を走らせます:

astra build --out ./dist
pnpm exec pagefind --site ./dist

pagefind が生成する dist/pagefind/ は、バンドル済み <pagefind-ui> コンポーネントが実行時に読み込むディレクトリです。Luna のドキュメントサイトはデプロイ前の CI でこれを実行しています — パターンは .github/workflows/deploy-website.yml を参照。

デプロイ前の検証

Luna リポジトリの tests/integration/website-asset-integrity.test.js は、ビルド出力のすべての HTML をクロールし、ローカル参照 (src / href) を解析して、各リソースの存在を検証します。同じパターンを自分のサイトに対して走らせれば、リンク切れアセットがデプロイ前に検出できます。