サーバーサイドではSitecore Experience Edgeエンドポイントを使ってJSSアプリをヘッドレスでレンダリングします
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Experience Edge(GraphQL)エンドポイントを使ってJSSで構築したReact、Angular、またはVue.jsアプリケーションをサーバーサイドでレンダリング(SSR)したい場合、Sitecoreはセットアッププロセスを簡素化する サンプルアプリケーション を提供しています。
Edgeエンドポイントを用いたSSRのサンプルアプリケーションnode-headless-ssr-experience-edgeには、Node.jsとExpressサーバー、エンドポイントのクエリサービスが事前に設定されています。
!注Node.jsとExpressは、ヘッドレスモードの特定のユースケースシナリオに応じて設定しなければならないサードパーティ技術です。
アプリケーションはJSS GraphQLサービス を使ってJSSアプリケーション、レイアウト、辞書データをプロキシせずにレンダリングします。
!重要Sitecore Experience Edgeエンドポイントを用いたSSRのサンプルは 実験的であり 、Sitecoreによって公式にサポートされていません。
この技術を使うには、以下の条件が必要です:
- ヘッドレスサービスがインストールされたSitecoreインスタンスです。
- Sitecore API鍵だ。
- React、Vue.js、またはAngularアプリケーションで構築されたJSS:
-
統合モードでサーバー側レンダリングをサポートしています。
-
Experience Edge GraphQLスキーマをサポートしています。
!重要JSSアプリケーションは、Next.jsベースのものを除き、レガシー/非EdgeのGraphQLスキーマを使用しています。GraphQLのコンポーネントやクエリはExperience Edgeスキーマと互換性のあるものに更新する必要があります。
-
SITECORE_API_KEYを提供します。GraphQLRequestClientはAPIキーを使ってSitecore XM EdgeスキーマとSitecore Experience Edgeの両方で認証用のsc_apikeyヘッダーを設定します。
-
サンプルnode-headless-ssr-experience-edgeを使ってJSS React、Angular、またはVue.jsアプリをヘッドレスでSSRするには:
-
ターミナルで、node-headless-ssr-experience-edgeサンプルに基づいてアプリケーション名を付けるためのJSSコマンドを実行してください。例えばjss-edge
jss create jss-edge node-headless-ssr-experience-edge
-
別のターミナル、SSRしたいJSSアプリのルートディレクトリで、次のスクリプトを実行して本番用JSSアプリを構築します。
jss build
-
例えば、distやbuildなどのディレクトリを、SSRアプリのルートディレクトリにコピーします。 jss-edge、例えばdist/
/ ディレクトリ内のディレクトリです。 あるいは、JSSアプリのscjssconfig.jsonファイルでinstancePathをSSRサンプルルートに変更してください。ターミナルでjss deploy filesコマンドを実行して、ビルド結果をSSRアプリにデプロイします。
!重要scjssconfig.jsonファイルは、JSSアプリをSitecoreに接続していなければ存在しないかもしれません。
-
SSR jss-edgeアプリでconfig.jsファイルを検査し、以下のプロパティの値を指定するために(または環境変数を使う)ことができます。
- appName- config.appName構成のpackage.jsonファイルに設定されたJSSアプリケーションの価値。
- bundlePath - ビルドプロセスの結果としてディレクトリをコピーした経路 server.bundle.js。例えば: './dist/
/server.bundle'。 - endpoint - Sitecore Experience Edge終点。
- apiKey - Sitecore Experience EdgeでプロビジョニングされたAPIキーに設定。
- defaultLanguage - リクエストURLに言語が指定されていない場合、言語コンテキストを判別するためにJSSアプリで設定したデフォルトの言語に設定します。
- port - SSRサンプルの開始用。
-
端末のSSR jss-edgeアプリのルート上で、SSRアプリケーションをテストするために以下のスクリプトを実行します。
npm run start
環境変数
環境変数を設定してSSRアプリケーションを設定することは、コンテナのようなより望ましい環境では、config.jsファイルを変更する代わりに設定できます。
環境変数は、config.jsファイルのdotenvなどのライブラリを使って.envファイルから値を読み取ることで、ホスティング環境やコンテナ環境、SSRアプリケーションで設定できます。
Sitecore Experience EdgeエンドポイントでSSRのJSSアプリの環境を設定するには、以下の変数を使用します。
パラメータ
概要
SITECORE_JSS_APP_NAME
JSSアプリの名前。レイアウトデータや辞書をGraphQLクエリで要求する際に使われ、 SITECORE_JSS_SERVER_BUNDLE のデフォルト値は設定されていません。
SITECORE_API_KEY
APIキーはSitecore Experience Edgeにプロビジョニングされました。
SITECORE_JSS_SERVER_BUNDLE
JSSアプリの server.bundle.js ファイルへのパス。
SITECORE_EXPERIENCE_EDGE_ENDPOINT
Sitecore Experience Edge終点。
DEFAULT_LANGUAGE
SSRしたいJSSアプリで設定されたデフォルトの言語。リクエストURLで言語が指定されていない場合、言語コンテキストを特定するために使われます。
PORT
オプションです。サンプル開始時に使われるポート。 config.jsのデフォルトを参照してください。