メインコンテンツまでスキップ

Cloudflare Pages に載せる(Wrangler)

DOCUSAURUS_URL / DOCUSAURUS_BASE_URLWrangler の設定ではなく、npm run build のときの環境変数 です。
静的 HTML のパスがビルド時に焼き込まれるので、deploy 時に env を付けても効きません

① DOCUSAURUS_* を付けて build → website/build/
② wrangler pages deploy build → Cloudflare Pages

いちばん簡単(手元)

cd website

# 1) Pages ルート用にビルド(BASE_URL=/ 固定)
export DOCUSAURUS_URL=https://YOUR_PROJECT.pages.dev # 本番 URL
# export DOCUSAURUS_BASE_URL=/ # build:pages の既定
npm run build:pages

# 2) ログイン(初回だけ)
npx wrangler login
# または: export CLOUDFLARE_API_TOKEN=...

# 3) デプロイ
export CLOUDFLARE_PAGES_PROJECT=YOUR_PROJECT # 省略時 mercari-docs
npm run deploy:pages

1 行で:

DOCUSAURUS_URL=https://YOUR_PROJECT.pages.dev npm run build:pages
CLOUDFLARE_PAGES_PROJECT=YOUR_PROJECT npm run deploy:pages

env の意味

変数いつ用途
DOCUSAURUS_URLbuildcanonical URL(OGP・sitemap など)
DOCUSAURUS_BASE_URLbuildパス prefix。Pages ルートなら /
CLOUDFLARE_PAGES_PROJECTdeployPages プロジェクト名
CLOUDFLARE_API_TOKENdeployCI / 非対話デプロイ
CLOUDFLARE_ACCOUNT_IDdeployアカウント固定(任意)

wrangler.tomlpages_build_output_dir = "build" は出力ディレクトリの指定だけです。DOCUSAURUS_* は書きません。

Git 連携(Dashboard)

Cloudflare Dashboard → Pages → プロジェクト → Settings → Builds:

項目
Root directorywebsite(モノレポのとき)
Build commandnpm ci && npm run build:pages
Build output directorybuild

Environment variables(Production / Preview):

DOCUSAURUS_URL=https://YOUR_PROJECT.pages.dev
DOCUSAURUS_BASE_URL=/

プレビュー用に別 URL がある場合は Preview 環境だけ DOCUSAURUS_URL を差し替え。

GitHub Project Pages との違い

Cloudflare PagesGitHub Project Pages
DOCUSAURUS_BASE_URL通常 /ライブラリ既定/repo名/npm run build:gh-pages
デプロイwrangler pages deploy / npm run deploy:pagesgh-pages / Actions

症状: 画面に
Current configured baseUrl = /mercari_search/ / We suggest trying baseUrl = /
古いビルドbaseUrl がサブパス)をルートに載せている。直す:

cd website
rm -rf build .docusaurus
DOCUSAURUS_URL=https://YOUR_PROJECT.pages.dev npm run build:pages
# 確認: HTML に /mercari_search/ が無いこと
grep -c mercari_search build/index.html || echo 'clean'
npm run deploy:pages

npm run build も既定は baseUrl=/ です。GitHub サブパスだけ build:gh-pages を使ってください。

トラブルシュート

  • CSS が当たらない → ビルド時の DOCUSAURUS_BASE_URL を確認(Pages なら /
  • deploy したのに古い → 別プロジェクト名になっていないか CLOUDFLARE_PAGES_PROJECT を確認
  • Authentication errornpx wrangler login または CLOUDFLARE_API_TOKEN