コンテンツにスキップ

知られている問題

Cloudflare Pagesに関する既知のバグや問題は以下の通りです。

ビルドとデプロイ

  • GitHubとGitLabは現在、自動CI/CDビルドのサポートされているプラットフォームです。直接アップロードを使用すると、自分のビルドプラットフォームを統合したり、ローカルコンピュータからアップロードしたりできます。

  • 現在、Cloudflare Pagesではインクリメンタルビルドはサポートされていません。

  • ダッシュボードの直接アップロードオプションを通じて/functionsディレクトリをアップロードすることは機能しません(直接アップロードでの関数の使用を参照)。

  • フォークされたリポジトリからのコミット/PRはプレビューを作成しません。このサポートは将来的に提供される予定です。

Git構成

  • PagesアプリケーションのためにGitHub/GitLabリポジトリを選択した後は、変更することができません。更新が必要な場合は、Pagesプロジェクトを削除し、異なるリポジトリを指す新しいプロジェクトを作成してください。

ビルド構成

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

  • Hugoビルドは自動的に古いバージョンを実行します。最新のHugoバージョン(例えば、0.101.0)を実行するには、環境変数を設定する必要があります。HUGO_VERSION0.101.0またはお好みのHugoバージョンに設定してください。

  • デフォルトでは、CloudflareはPagesビルド環境でNode 12.18.0を使用します。新しいNodeバージョンを使用する必要がある場合は、ビルド構成ページを参照して構成オプションを確認してください。

  • Netlifyから移行するユーザー向けに、CloudflareはNetlifyのForms機能をサポートしていません。Pages Functionsは、Netlifyのサーバーレス関数の代替として利用可能です。

カスタムドメイン

  • 現在、以下の条件でカスタムドメインを追加することはできません。

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

  • Cloudflareのロードバランサーは*.pages.devプロジェクトでは機能しません。Error 1000: DNS points to prohibited IPが表示されます。

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

  • 高度な証明書は、Cloudflare for SaaSの証明書の優先順位付けのため、Cloudflare Pagesでは使用できません。

Pages Functions

  • Functionsは現在、ポリフィルの追加/削除をサポートしていないため、バンドラー(例えば、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ダッシュボードにログインします。
  2. アカウントホームから、Workers & Pagesを選択します。
  3. 概要で、Pagesプロジェクトを選択します。
  4. 設定 > アクセスポリシーを有効にするに移動します。
  5. プレビューデプロイメント用に作成されたアクセスポリシーの編集を選択します。
  6. 編集画面で、概要に移動します。
  7. サブドメインフィールドでワイルドカード(*)を削除し、アプリケーションを保存を選択します。このステップでアプリケーション名を変更する必要があるかもしれません。

このステップで、*.pages.devドメインはAccessの背後で保護されました。プレビューデプロイメントを再度保護するには:

  1. Pagesプロジェクトに戻り、設定 > 一般 > でアクセスポリシーを有効にするを再選択します。
  2. *.pages.devドメイン用とプレビューデプロイメント用(*.<YOUR_SITE>.pages.dev)の2つのアクセスポリシーが作成されていることを確認します。

カスタムドメインがあり、*.pages.devドメインをAccessの背後で保護している場合は:

  1. Cloudflare Zero Trustアプリケーションを追加 > 自己ホストを選択します。
  2. アプリケーション名を入力し、_ドメイン_ドロップダウンメニューからカスタムドメインを選択します。
  3. 次へを選択し、アクセスルールを設定して、誰がAccess認証ページにアクセスできるかを定義します。
  4. アプリケーションを追加を選択します。

リストにない問題がある場合は、Cloudflare Workers Discordでチームに知らせてください。招待状はdiscord.cloudflare.comで入手し、#pages-generalチャンネルでバグレポートを共有してください。

多数のデプロイメントを持つプロジェクトの削除

デプロイメントが多い(100以上)Pagesプロジェクトを削除できない場合があります。Cloudflareチームはこの問題を追跡しています。

回避策として、以下の手順に従ってPagesプロジェクト内のすべてのデプロイメントを削除してください。デプロイメントを削除した後、Pagesプロジェクトを削除できるようになります。

  1. 次のリンクからdelete-all-deployments.zipファイルをダウンロードします: https://pub-505c82ba1c844ba788b97b1ed9415e75.r2.dev/delete-all-deployments.zip
  2. delete-all-deployments.zipファイルを解凍します。
  3. ターミナルを開き、delete-all-deploymentsディレクトリにcdします。
  4. delete-all-deploymentsディレクトリ内でnpm installを実行して依存関係をインストールします。
  5. 次のコマンドを確認して、どの削除を進めるかを決定します:
Terminal window
CF_API_TOKEN=<YOUR_CF_API_TOKEN> CF_ACCOUNT_ID=<ACCOUNT_ID> CF_PAGES_PROJECT_NAME=<PROJECT_NAME> npm start
  • ライブプロダクションデプロイメントを除くすべてのデプロイメントを削除する場合(エイリアスデプロイメントを含む、例えばstaging.example.pages.dev):
Terminal window
CF_API_TOKEN=<YOUR_CF_API_TOKEN> CF_ACCOUNT_ID=<ACCOUNT_ID> CF_PAGES_PROJECT_NAME=<PROJECT_NAME> CF_DELETE_ALIASED_DEPLOYMENTS=true npm start

Cloudflare APIトークンを見つけるには、Cloudflareダッシュボードにログインし、画面右上のユーザーアイコンを選択 > マイプロフィール > APIトークンに移動します。

アカウントIDを見つけるには、ゾーンとアカウントIDを見つけるを参照してください。

CloudflareロードバランサーでのPagesのオリジンとしての使用

Cloudflareロードバランシングは、ホストヘッダーが設定されていないと機能しません。Pagesプロジェクトをターゲットとして使用するには、プールを作成する際にホストヘッダーを追加を選択し、ホストヘッダーの値とエンドポイントアドレスをpages.devドメインに設定してください。

完全なチュートリアルについては、Cloudflare Pagesをオリジンとして使用するを参照してください。