Insights

Astro で作ったサイトを Cloudflare Workers で配信する

静的サイトとしてビルドした Astro を、Cloudflare Workers の静的アセット配信で公開するまでの構成と手順を紹介します。

このサイトは Astro で作り、Cloudflare Workers で配信しています。構成と手順を簡単にまとめます。

構成

  • Astro:すべてのページと記事をビルド時に HTML として生成する(静的サイト)
  • Cloudflare Workers(静的アセット):生成した dist/ をそのまま配信する
  • GitHub:main に push すると、Cloudflare 側でビルドとデプロイが走る

サーバー側の処理がない静的サイトなので、@astrojs/cloudflare アダプターは使いません。

wrangler の設定

プロジェクト直下に wrangler.jsonc を置き、配信するディレクトリを指定します。

{
	"name": "l2md",
	"compatibility_date": "2026-10-17",
	"assets": {
		"directory": "./dist",
		// 存在しない URL には dist/404.html を返す
		"not_found_handling": "404-page",
	},
}

ローカルで確認してデプロイする

# 開発サーバー(http://localhost:4321)
npm run dev

# ビルドして、Cloudflare と同じ実行環境で確認
npm run build
npx wrangler dev

# 手動でデプロイ
npm run deploy

Git 連携で自動デプロイする

Cloudflare ダッシュボードの Workers & Pages から GitHub リポジトリを連携すると、push のたびに自動でビルド・デプロイされます。

項目 値
ビルドコマンド npm run build
デプロイコマンド npx wrangler deploy

記事を書いて push するだけで公開まで終わるので、テックブログの運用にも向いています。

Contact

データの使い方から、一緒に考えます。

困っていることを、まずはそのままお聞かせください。