Next.js JSSアプリでEditingRenderMiddlewareを使用して既定のプロトコルをオーバーライドする

Version: 22.x
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Vercel以外のプラットフォームでNext.js JSSアプリケーションをホストしている場合、プロトコルの不一致エラーにより、Experience Editorとの統合が機能しなくなります。

デフォルトでは、Next.js JSSアプリケーションは、環境変数VERCELの値に基づいて、HTTPリクエストURLのプロトコルをhttpまたはhttpsに設定します。変数の値がtrueの場合、アプリケーションは要求のプロトコルをhttpsに設定します。別のプラットフォームでアプリケーションをホストする場合、この変数にはtrue値はなく、アプリケーションはhttpプロトコルを使用します。

アプリケーションは、考えられるすべての環境/構成/プラットフォームで正しいプロトコルを決定できるわけではないため、Next.js SDKでは、編集レンダリング ミドルウェアの構成でresolveServerUrlプロパティを使用して既定のプロトコルをオーバーライドできます。

デフォルトのプロトコル設定を上書きするには:

  • src/pages/api/editing/render.tsファイルで、編集レンダリング の既存のオプションをhandlerに置き換えます。例えば:

    RequestResponse
    const handler = new EditingRenderMiddleware({
      resolveServerUrl: (req: NextApiRequest) => {
        return `${process.env.VERCEL ? 'https' : process.env.PROD ? 'https' : 'http'}://${req.headers.host}`;
      },
    }).getHandler();

何かフィードバックはありますか?

この記事を改善するための提案がある場合は、