チュートリアル: JSSアプリのHTTPレンダリング エンジンの構成

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

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

HTTPレンダリング エンジン (レンダリング ホスト) には、JSSアプリのクライアント側とサーバー側の構成が必要です。次の手順は、React、Angular、およびVue.jsサンプル アプリケーションに基づくJSSアプリケーションに適用されます。Next.jsサンプルに基づくJSSアプリケーションは、HTTPレンダリングエンジンを使用するように事前設定されています。

このチュートリアルでは、次の方法について説明します。

  • レンダリングエンジンをサーバー側で設定します。

  • レンダリングエンジンをクライアント側で設定します。

レンダリングエンジンのサーバー側の設定

サーバー上でHTTPレンダリングエンジンを設定するには、絶対設定を選択するか、レンダリングホストURLを動的に設定するかを選択できます。

固定レンダリング ホストURLを設定するには、JSSアプリの設定を更新する必要があります。

固定レンダリング ホストURLを設定するには:

  1. Sitecore設定ファイル ( /sitecore/config/JssReactWeb.configなど) で、<app/> 設定でserverSideRenderingEngine属性をhttpに設定します。

  2. serverSideRenderingEngineEndpointUrl属性をレンダリング ホストのURLを指すように設定します。たとえば、http://localhost:5000.

または、レンダリング ホストURLを動的に設定するには、次のようにします。

  1. HTTPレンダリングエンジン設定ファイル ( \App_Config\Sitecore\JavaScriptServices\Sitecore.JavaScriptServices.ViewEngine.Http.configなど) で、プロパティ のAllowOptionsOverrideの値をtrueに設定します。

    RequestResponse
    <AllowOptionsOverride>true</AllowOptionsOverride>
  2. sc_httprenderengineurlクエリ文字列パラメータ (http://mysitecore.local/?&sc_httprenderengineurl=https://2ea61a8f80b9.ngrok.io/api/editing/renderなど) を使用してページにアクセスします。

レンダリングエンジンのクライアント側の設定

JSSアプリケーションをサーバー側でレンダリングできるようにするには、クライアント側でもHTTPレンダリングエンジンを構成する必要があります。

メモ

この手順は、Reactアプリケーションに適用されます。Vue.jsおよびAngularアプリケーションの場合は、レンダリング ホスト ビルド スクリプトを実装する必要があります。

レンダリング ホストを実行するには:

  1. package.jsonファイルのconfigセクションで、レンダリング ホストのURLを指すようにtunnelUrl設定を更新します。レンダリング ホストは、ローカルURLまたはリモートURLにすることができます。たとえば、ローカル テストの場合は、次のように設定できますhttp://localhost:5000

    RequestResponse
      "config": {    
        "appName": "JssReactWeb",    
        "rootPlaceholders": [      
          "jss-main"    
        ],    
        "sitecoreDistPath": "/dist/JssReactWeb",    
        "sitecoreConfigPath": "/App_Config/Include/zzz",    
        "graphQLEndpointPath": "/sitecore/api/graph/edge",    
        "language": "en",    
        "tunnelUrl": "http://localhost:5000"  
      },

    ビルド プロセスでは、tunnelUrl値を使用して、すべての相対的な静的アセットURL (画像、JavaScript、CSSファイル) を絶対URLに変換します。静的アセットはSitecoreサーバーに表示されないため、これにより、リモートSitecoreインスタンスがそれらを正しくレンダリングすることが保証されます。

  2. レンダリング ホスト用のアプリをビルドし、/buildフォルダーに配置します。ターミナルで、次のスクリプトを実行します。

    RequestResponse
    npm run build:rendering-host

    このビルド プロセスでは、既定のbuildコマンドと同じアクションを実行しますが、tunnelUrl設定に基づいて、相対的な静的アセットURLを絶対URLに置き換えます。

  3. ngrokアカウントに登録し、認証トークンを取得します。

    手記

    ngrokアカウントの登録は、悪用を防ぐためのサービスの変更のため、必要な手順です。認証トークンがないと、HTTPレンダリング エンジンを使用してレンダリング ホスト インスタンスを開始できず、ngrokエラー 9018が発生します。

  4. scripts/http-renderer.jsファイルで、認証トークンをstartRenderHostTunnel関数のオプションに追加します。

    RequestResponse
    startRenderHostTunnel('localhost', { port: 5000, authtoken: "<your-ngrok-authtoken>" })
  5. レンダリング ホスト インスタンスをhttp://localhost:5000 (既定) で実行し、ngrokトンネルを開始します。ターミナルで、次のスクリプトを実行します。

    RequestResponse
    npm run start:rendering-host

    トンネルは、パブリックHTTPエンドポイントを介してローカル レンダリング ホストを外部に公開します。これは、テスト目的でリモートSitecoreインスタンスのエクスペリエンス エディターでJSSアプリをレンダリングする場合に便利です。

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

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