Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

既知の問題

最終更新 Markdown で表示Agent セットアップ

Cloudflare Pages の既知の不具合と問題は次のとおりです。

ビルドとデプロイ

  • 自動 CI/CD ビルドで現在サポートしているプラットフォームは、GitHub と GitLab だけです。Direct Upload を使うと、独自のビルドプラットフォームと連携したり、ローカルコンピューターからアップロードしたりできます。

  • Cloudflare Pages では、増分ビルドは現在サポートしていません。

  • ダッシュボードの Direct Upload オプションで /functions ディレクトリをアップロードしても動作しません(Direct Upload での Functions の利用 を参照)。

  • フォークしたリポジトリからのコミット / PR では、プレビューは作成されません。このサポートは今後追加予定です。

Git の設定

  • Git 連携でデプロイした場合、あとから Direct Upload へ切り替えられません。すでに Git 連携のプロジェクトを使っていて、コミットをプッシュするたびにデプロイしたくない場合は、自動デプロイを無効化 / 一時停止 できます。更新が必要な場合は、Pages プロジェクトを削除し、別のリポジトリを指す新しいプロジェクトを作成する方法もあります。

ビルド設定

  • *.pages.dev サブドメインは、現在変更できません。*.pages.dev サブドメインを変更する必要がある場合は、プロジェクトを削除して新しく作成してください。

  • Hugo のビルドは、古いバージョンが自動で実行されます。最新の Hugo(例: 0.101.0)を実行するには、環境変数を設定します。HUGO_VERSION0.101.0、または使いたい Hugo のバージョンに設定してください。

  • デフォルトでは、Pages のビルド環境は Node 12.18.0 を使います。新しい Node バージョンが必要な場合は、設定オプションについて ビルド設定のページ を参照してください。

  • Netlify から移行する場合、Cloudflare は Netlify の Forms 機能をサポートしていません。Netlify の Serverless Functions に相当するものとして、Pages Functions を利用できます。

カスタムドメイン

  • 現在、次のカスタムドメインは追加できません。

    • ワイルドカード(例: *.domain.com)。
    • そのドメインにすでに Worker がルーティングされている場合。
  • そのドメインで Cloudflare Access ポリシーがすでに有効な場合、カスタムドメインは現在追加できません。

  • Cloudflare の Load Balancer は *.pages.dev プロジェクトでは動作しません。Error 1000: DNS points to prohibited IP が表示されます。

  • カスタムドメインを追加するとき、そのホスト名で SSL 証明書のリクエストを Cloudflare が検証できないと、ドメインは検証されません。SSL を検証するには、Cloudflare Access または Cloudflare Worker が、検証パス http://{domain_name}/.well-known/acme-challenge/* へのリクエストを許可していることを確認してください。

  • Advanced Certificates は、Cloudflare for SaaS の 証明書の優先順位 のため、Cloudflare Pages では使えません。

Pages Functions

  • Functions は現在、polyfill の追加 / 削除をサポートしていないため、バンドラー(例: webpack)が実行されないことがあります。

  • passThroughOnException() は現在、Advanced Mode の Pages Functions(_worker.js ファイルを使う Pages Functions)では利用できません。

  • passThroughOnException() は現在、Workers ほど堅牢ではありません。Pages Functions のコードを try...catch ブロックで囲み、env.ASSETS.fetch() の呼び出しにフォールバックしています。そのため、CPU 時間超過やメモリ超過などの重大な障害では、依然としてエラーになることがあります。

*.pages.dev ドメインで Access を有効にする

プレビューデプロイと *.pages.dev ドメインで Cloudflare Access] を有効にする場合は、次の手順を実行します。

  1. Cloudflare ダッシュボードで Workers & Pages ページを開きます。

    Workers & Pages を開く ↗
  2. Pages プロジェクトを選択します。

  3. Settings > Enable access policy を開きます。

  4. プレビューデプロイ用に作成された Access ポリシーで Manage を選択します。

  5. Access > Applications で、プロジェクトを選択します。

  6. Configure を選択します。

  7. Public hostnameSubdomain フィールドで、ワイルドカード(*)を削除して Save を選択します。エラーを避けるため、この手順で Application name を変更する必要がある場合があります。

この時点で、*.pages.dev ドメインは Access の背後で保護されています。プレビューデプロイを再度保護するには、次を実行します。

  1. Pages プロジェクト > Settings > General に戻り、Enable access policy を再度選択します。
  2. Access ポリシーが 2 つ作成されていることを確認します。1 つは *.pages.dev ドメイン用、もう 1 つはプレビューデプロイ(*.<YOUR_SITE>.pages.dev)用です。

カスタムドメインがあり、*.pages.dev ドメインを Access の背後で保護した場合は、次を実行します。

  1. Cloudflare ダッシュボードZero Trust > Access controls > Applications を開きます。Create new application > Self-hosted and private を選択します。
  2. Add public hostname を選択し、Domain ドロップダウンメニューからカスタムドメインを選びます。
  3. Access の認証ページに到達できる人を定義するよう、アクセスルールを設定します。
  4. Create を選択します。

一覧にない問題がある場合は、Cloudflare Workers の Discord でチームに知らせてください。discord.cloudflare.com で招待を受け取り、#pages-general チャンネルで不具合を共有してください。

デプロイ数が多いプロジェクトを削除する

デプロイ数が多い(100 件超)Pages プロジェクトは、削除できないことがあります。Cloudflare チームはこの問題を追跡しています。

回避策として、wrangler pages deployment delete でデプロイを 1 件ずつ削除できます。デプロイを削除したあと、Pages プロジェクトを削除できます。

npx wrangler pages deployment delete <DEPLOYMENT_ID> --project-name <PROJECT_NAME>

確認プロンプトをスキップし、エイリアス付きデプロイを強制削除するには、--force フラグを使います。

特定のプロジェクト名のデプロイを すべて 削除するには、次のシェルスクリプトを実行できます。

prod_id=""
while :; do
  ids=$(npx wrangler pages deployment list --project-name <PROJECT_NAME> --json | jq -r '.[].Id')
  to_delete=$(echo "$ids" | grep -v -F -x "$prod_id" | grep .)
  [ -z "$to_delete" ] && { echo "Done. Production: $prod_id"; break; }
  echo "Deleting $(echo "$to_delete" | wc -l | tr -d ' ') deployments..."
  while IFS= read -r id; do
    if ! npx wrangler pages deployment delete "$id" --project-name <PROJECT_NAME> --force 2>&1 | tee /tmp/wrangler-del.log | grep -q "Successfully deleted"; then
      grep -q "active production deployment" /tmp/wrangler-del.log && prod_id="$id"
    fi
  done <<< "$to_delete"
done

アクティブな本番デプロイがある場合、このスクリプトでは削除されません。

Cloudflare Load Balancer で Pages をオリジンにする

Cloudflare Load Balancing は、ホストヘッダーを設定しないと動作しません。Pages プロジェクトをターゲットにする場合は、プールの作成 時に Add host header を選び、ホストヘッダーの値とエンドポイントアドレスの両方を pages.dev ドメインに設定してください。

手順全体は Cloudflare Pages をオリジンとして使う を参照してください。

役に立ちましたか?