チュートリアル: Next.js JSSアプリをSitecoreエディターに接続する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecoreコンテナー テンプレートを使用してNext.js JSSアプリケーションを作成すると、Next.jsアプリはSitecoreエディターとの統合用に事前に設定されています。ただし、JSSアプリ初期化子を使用してアプリを作成した場合は、Sitecoreエディターとの統合を手動で設定する必要があります。
Next.js JSSアプリをSitecoreエディターに接続する前に、次のことを行う必要があります。
JSSアプリケーションを接続したら、Next.js JSSアプリケーションをSitecore Experience EditorやHorizonなどのSitecoreエディターと統合できます。
このチュートリアルでは、次の方法について説明します。
-
JSSアプリのSitecore設定パッチを更新します。
-
Sitecoreエディター エンドポイントを保護します。
-
Next.jsアプリケーションを構成します。
Next.js用のSitecoreコンテナ テンプレートは、エクスペリエンス エディターとの事前設定された統合を提供します。
JSSアプリのSitecore設定パッチを更新する
コードファーストNext.jsアプリケーションの高度なSitecoreエディターとの統合を有効にするには、まずSitecore設定パッチを使用してJSSアプリケーションを設定する必要があります。
Sitecoreエディター統合に必要な設定を作成するには、次の手順に従います。
-
Next.js JSSアプリケーション・ディレクトリのルートで、ファイル /sitecore/configを開きます。
-
パスconfiguration/sitecore/javaScriptServices/appsで、Next.jsアプリケーションのappノードで、次の属性を設定します。
-
serverSideRenderingEnginehttpに。これは、Next.jsアプリケーションがSitecoreエディターとの統合にHTTPレンダリング エンジンを使用するためです。
-
serverSideRenderingEngineApplicationUrl選択したホスト名とポートに貼り付けます。デフォルト値はhttp://localhost:3000です。
-
serverSideRenderingEngineEndpointUrlをSitecoreエディターからのPOSTリクエストを処理するためのNext.jsアプリのAPIルートの絶対URLに設定します。デフォルト値は、Render API Route http://localhost:3000/api/editing/renderのルートです。
デフォルト値のデフォルト設定は次のとおりです。
-
-
ターミナルで、次のコマンドを実行して、新しい設定をSitecoreインスタンスにデプロイします。
Sitecoreエディター エンドポイントの保護
Next.jsアプリケーションを使用して編集モードでSitecoreページをレンダリングする場合は、Next.jsアプリのエディター統合APIルートを通じてSitecoreエディター エンドポイントを公開します。
Sitecoreエディター エンドポイントを保護するには、最初にシークレット トークンを生成する必要があります。Sitecoreでは、英数字の値 ( at least 16 characters) を推奨しています。
このシークレットは、サーバー側とクライアント側の両方で設定する必要があり、値は一致する必要があります。
JSS Editing Secretをサーバー側で設定するには、2つのオプションがあります。SITECORE_JSS_EDITING_SECRET環境変数を設定するか、Sitecore設定パッチを使用してSitecoreエディター エンドポイントを保護できます。
Sitecore設定パッチを使用してSitecoreエディター エンドポイントを保護するには:
-
Next.js JSSアプリケーションディレクトリのルート、/sitecore/configファイル、ノードconfiguration/sitecore/javaScriptServices/settingsで、以下を追加またはコメント解除してJavaScriptServices.ViewEngine.Http.JssEditingSecretを設定します。
-
ターミナルで、次のコマンドを実行して、新しい設定をSitecoreインスタンスにデプロイします。
Next.jsアプリケーションを構成する
Sitecoreエディター統合用にNext.jsアプリケーションを設定するには:
-
プロジェクトのルートディレクトリにある .envファイルで、環境変数JSS_EDITING_SECRETをサーバー側で構成したSITECORE_JSS_EDITING_SECRETの値に設定します。
-
Sitecoreエディターで編集可能な任意のページで、useEffect Reactフック内で、ユーティリティ関数handleEditorFastRefreshを呼び出します (まだ存在しない場合は)。
手記Next.jsサンプル アプリケーションには、このコードが既定のキャッチオール ルートに既に含まれています。
Next.js Fast Refresh機能は、Sitecoreエクスペリエンス エディター内で使用する場合、いわゆるエディター クロム (レンダリングごとにSitecoreエディターによって挿入される追加のマークアップとJavaScript) を保持するために特別な処理が必要です。
デフォルトでは、エディターのクロムのみが更新されます。一部のシナリオでは、forceReloadパラメーターを使用して、代わりにページ全体を強制的に再読み込みしたい場合があります。
統合を確認する
Next.jsアプリケーションが正しく実行されていることを確認するには、次のようにします。
-
アプリケーションのURLを開きます (デフォルトではブラウザー http://localhost:3000 )。
トラブルシューティング
Next.jsを開発モードで実行している場合、動的コンパイルにより、最初のページ編集時にタイムアウトが発生する場合があります。ただし、これは後続の要求で自動的に解決されることが期待できます。
その他の問題が発生した場合は、次の点を確認してください。
-
JSS Editing Secretがサーバー側とクライアント側の両方で一致することを確認します。
-
Next.jsログにエラーがないか確認します。
-
Sitecoreログにエラーがないか確認します。
JSSデバッグ ロガーを使用して、Next.jsアプリでのSitecoreエディター統合をデバッグします。