Next.jsアプリケーションでカスタムAPIルートをフェッチする際にPages editorでプレビュー モードが動作しない


解説

Pages editorおよびプレビュー モードを使用してNext.jsアプリケーションのカスタムAPIルートにアクセスした際に、404 Not Foundエラーが発生する場合があります。
この問題は、リクエストが編集ホストの代わりにXM Cloud CM (Content Management)のホスト名に送信された場合に、ホスト名の不一致により発生します。指定された相対パスが現在のホスト名に依存していることから、エラーが発生します。

解決策

この問題を解決するには、以下の解決策を実施してください。

  1. 貴社エンドポイントからデータをフェッチする際に、相対パスの代わりに絶対パスを使用します。つまり、現在のページから見た相対的なパスではなく、(ドメインを含む)完全なURLを指定します。
  2. Sitecore Experience EditorまたはPagesとの互換性を確保するため、APIルートの前にパブリックURL(貴社アプリケーションのベースURL)を追加します。
    例:
    await fetch(publicUrl + "/api/customApiEndpoint");