チュートリアル: コード ファーストのJSS Next.jsアプリケーションをSitecoreに接続する
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
すべてのJSSアプリケーションは、ライフサイクルのある時点で、切断モードからSitecore環境へのデプロイに移行する必要があります。JSS CLIを使用して、アプリをSitecoreにデプロイし、切断されたすべてのコンテンツとコンポーネントをItemsにインポートして編集することができます。
アプリがSitecoreに接続されると、接続モードで アプリを実行し、Sitecore エディターや高度なエディターのライブ データを使用してアプリを開発できます。
コンテナベースのテンプレートで作成されたJSS Next.jsアプリは、Dockerコンテナ内のSitecoreインスタンスにすでに接続されています。次の手順は、NPM初期化子を使用して作成されたJSS Next.jsアプリに対してのみ実行する必要があります。
JSSアプリケーションをSitecoreに接続してデプロイするには、ヘッドレス サービスを使用してインスタンスにアクセスできること、JSS CLIをグローバルにインストールし たこと、APIキーを作成したことが必要です。
このチュートリアルでは、次の方法について説明します。
-
JSSアプリのサイト名とホスト名を構成します。
-
接続情報を設定します。
-
アプリの設定をSitecoreにデプロイします。
-
JSS Next.jsアプリをSitecoreにデプロイします。
JSSアプリのサイト名とホスト名を構成する
JSSアプリ初期化子を使用してJSSサンプルに基づいて作成されたアプリケーションには、アプリケーションで作成された構成パッチにサイト定義が含まれます。
JSSアプリケーションのルート フォルダで、構成パッチ /sitecore/config/<AppName>.configを含むファイルを開き、hostName属性がサーバーが応答する必要があるホスト ヘッダーと一致することを確認します。 Sitecoreインストールのデフォルト サイトとなるJSSアプリをデプロイする場合は、hostName属性を削除して、JSSアプリが任意のホストに応答するようにすることができます。
開発ホスト名のトップレベルドメイン (TLD) を指定します。ブラウザーのMicrosoft Edgeは、TLDがないとホスト名を解決しません。たとえば、ブラウザーはhttp://jss.sitecoreを解決できますが、http://sitecoreは解決できません。
次に、サイト名とホスト名を設定するためのサイト設定例を示します。
<!-- other attributes removed for brevity -->
<site x:before="site[@name='website']"
hostName="myapp.siteco.re" />
ローカルインスタンスを使用している場合は、hostsファイルエントリで目的のホスト名をローカルホストにマップする必要があります。
Windowsのhostsファイル エントリでホスト名をlocalhostにマップするには:
-
管理者としてコード エディターを開きます。
-
エディタで、hostsファイルC:\Windows\System32\drivers\etc\hostsを開きます。
-
マッピングを追加します。例えば:
RequestResponse127.0.0.1 myapp.siteco.re
-
ファイルを保存して閉じます。
ホスト名エントリを追加したら、それをIISインスタンスにもバインディングとして追加します。

複数のJSSアプリケーションをデプロイする予定の場合は、SitecoreのIISで異なるホストとホスト名バインディングを設定して、正しいサイトを解決する必要があります。
接続情報を設定する
接続を設定するには:
-
ターミナルで、JSSコマンドjss setupを実行し、プロンプトに従います。プロンプトに従って、次の情報を入力します。
-
Webサイトフォルダ: これは、設定ファイルのデプロイに使用されるSitecoreインスタンスへのルート物理パスです。ファイル共有パスは、リモートインスタンスでは問題ありません。たとえば、c:\inetpub\wwwroot\MySitecore\Websiteのようになります。ウェブサイトフォルダに直接アクセスできない場合は、インスタンスがリモートかどうかを尋ねられたら、noと答えます。
-
Sitecoreホスト名: これは、Sitecore構成パッチ /sitecore/config/<AppName>.configで以前に構成されたhostname of your JSS appです。例えば:http://jssreactweb
-
Sitecoreインポート サービスURL : これはimport service URL of your JSS appであり、デフォルトではhostname of your JSS appプラス /sitecore/api/jss/import: http://jssreactweb/sitecore/api/jss/importの1つになります。これを空白のままにしてデフォルト値を使用するか、カスタムURLを指定できます。
-
Sitecore APIキー: このJSSアプリのAPIキー のアイテムIDを指定します。
-
デプロイ シークレット: これは、アプリ アイテムをSitecoreにデプロイするための認証を可能にする共有シークレットです。セットアッププロセスによって生成されたランダムキーを使用することをお勧めします。独自のキーを選択する場合、シークレットはランダムに生成された32文字以上の文字列である必要があります。
大事なシークレットをソース管理にコミットしないでください。環境ごとに一意のシークレットを使用し、本番環境のシークレットへのアクセスを制限します。CI環境の場合、jss setupは、変数からシークレットやその他のパラメーターを渡すために使用できるパラメーター (--help) を受け入れます。デフォルトでは、シークレットは /scjssconfig.jsonと /sitecore/config/AppName.deploysecret.configに格納されますが、ソース管理にGitを使用している場合、どちらも自動的に無視されます。
-
jss setupプロセスでは、JSSアプリケーションの接続文字列を含む /scjssconfig.jsonファイルが生成されます。
APIリクエストに常に現在のホスト名を使用する本番環境で、環境に依存しないJSS App Bundleを作成するには、scjssconfig.jsonでlayoutServiceHost設定を空白に設定します。これは、ビルドアーティファクトの1つのセットをコミットし、それらをヘッドレスプロキシにデプロイする場合に便利です。この手法は、接続されたGraphQLと互換性がありません。
アプリの構成をデプロイします Sitecore
JSSアプリは、Sitecoreサーバーにデプロイされた構成パッチを使用してSitecoreに登録されます。サーバーのセットアップ時に、hostName属性を設定するときに、これらのパッチの1つをすでに編集しています。構成パッチをサーバー上で有効にするには、その前にデプロイする必要があります。構成は、自動的にデプロイ (推奨) または手動でデプロイできます。
自動デプロイでは、JSS CLIを使用してJSSアプリから直接構成パッチをデプロイします。
設定パッチを自動的にデプロイするには:
-
ターミナルのJSSアプリ内で、次のコマンドを実行します。
RequestResponsejss deploy config
このスクリプトは、sitecore/configフォルダからSitecore App_Config/Include/zzzフォルダに設定パッチ ファイルをコピーします。
自動構成デプロイでは、Sitecore内でJSSアプリが構成され、そのサイトが作成され、公開せずにライブ モードが有効になります。開発者は、パッチ ファイルを慎重に確認して、すべての設定が環境に対して正しいことを確認する必要があります。たとえば、本番環境では、アプリケーションをライブモードで実行しないでください。
コマンドの実行に使用するユーザーアカウントに、/scjssconfig.jsonで設定されたSitecore Webサイトフォルダーに書き込む権限があることを確認します。Windowsでは、これにはUACの昇格が含まれる場合があります。
JSSアプリ設定を専任のSitecore開発者 (またはDevOps) がデプロイする場合、またはリモート インスタンスで作業している場合は、JSSアプリ設定を手動でデプロイする必要があります。JSSアプリケーションからsitecore/config/*.configパッチを取得し、zzzフォルダーなどの任意の場所にあるApp_Config/Includeフォルダーにデプロイします。デプロイする前に、構成パッチの内容を確認してください。
JSS Next.jsアプリをデプロイします Sitecore
JSS for Iron Next.jsで構築されたアプリケーションは、Next.jsの特殊性により、React、Angular、Vue.jsのJSSで構築されたアプリケーションとは異なる方法でデプロイされます。基本的に、Next.jsサーバーがあるため、JSS Next.jsアプリはHTTPレンダリング エンジンを使用します。
JSS Next.jsアプリをSitecoreインストールにデプロイするには、次の手順に従います。
-
JSSアプリ内でコマンド プロンプト/ターミナルを開きます。
-
次のコマンドを実行します。
RequestResponsejss deploy items --includeContent --includeDictionary
Next.jsを操作するときは、jss deploy appやjss deploy filesを使用しないでください。
Next.js JSSアプリのpackage.jsonファイルでsitecoreDistPathを設定する必要はありません。