ASP.NET Coreレンダリングのレイアウトとサイトの要件
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
September 2024より前にASP.NET Coreアプリを統合した場合は、従来の ASP.NET CoreレンダリングSDKバージョン22以前が使用されています。このSDKは更新プログラムを受け取らなくなったため、新しい ASP.NET Core SDKの最新バージョンにアップグレードすることをお勧めします。
Sitecore Layout ServiceとASP.NET Coreレンダリング用のサイトとレイアウト構造を構築する場合、Sitecore MVCを使用した開発とはいくつかの重要な違いがあります。サイトを構築するとき、またはASP.NET Coreで使用するために既存のコンテンツを再構築するときは、これらに留意してください。
これらの違いは、JSSを使用したことのある開発者、特にSitecoreファーストのワークフローを使用する場合にはおなじみのものです。
サイト定義の構成
レンダリング ホストがサイトのフロント ドアである場合でも、レイアウト サービスで使用するには、構成された サイト定義 が必要です。ASP.NET Coreでレンダリングされたサイトのサイト定義を構成する場合:
-
rootPathは、他のSitecoreサイトの場合と同様に構成します。
-
hostName URLまたはtargetHostName URLをContent Delivery (CD) サーバーの外部向けホスト名として構成します。このホストは、レイアウトサービスがメディアライブラリのURLを出力するときに使用されます(CDNを使用していない場合)。
-
サイトのnameは、レイアウト サービス クライアントの 既定の要求値で構成する必要があります。
エクスペリエンスエディターサポートの設定
エクスペリエンス エディターをサポートするには、レイアウト、サイト ルート、アプリ構成を適切に構成する必要があります。
JSONレンダリングの使用
ASP.NET Coreサイトで使用する新しいレンダリングを作成する場合は、コントローラー レンダリングやビュー レンダリングなどのSitecore MVCレンダリング タイプを使用しないでください。常にJSONレンダリング (/sitecore/templates/Foundation/JavaScript Services/Json Rendering) を使用します。
このレンダリングの種類は、レイアウト サービスによってシリアル化され、ASP.NET Coreコンポーネントがレンダリングに必要なデータを使用します。Jsonレンダリングの重要なフィールドは次のとおりです。
|
畑 |
形容 |
|---|---|
|
コンポーネント名 |
これにより、レイアウトサービス出力のcomponentNameプロパティが入力されます。 レンダリングエンジンでコンポーネントを設定する場合、これはマッピングする名前です。 |
|
データソースの場所 |
Sitecore MVC開発と同じように動作します。 |
|
データソーステンプレート |
Sitecore MVC開発と同じように動作します。 |
|
エクスペリエンス エディターで常にフィールド エディター ボタンを表示する |
エクスペリエンス エディターのコンポーネントでフィールド エディターを有効にし、非インライン フィールド タイプの編集に便利です。 |
|
フィールドエディタの表示フィールド |
上記のフィールドエディタのフィールドを設定します(デフォルトはすべてのフィールドです)。 |
|
キャッシュ可能(および関連) |
コンポーネントの出力キャッシュを設定します。レイアウト・サービスの出力キャッシングの実装を参照してください。 |
|
レンダリング コンテンツ リゾルバー |
レンダリング用のデータを出力するときに、カスタムのシリアル化構成/C#クラスを指定できます。「コンテンツ リゾルバを使用したレンダリングの作成」を参照してください。 |
|
レイアウト サービス プレースホルダー |
大事な アイテムの完全な構造化レイアウトを出力するには、レイアウト サービスはレンダリング上に存在するプレースホルダーを認識する必要があります。 これらの公開されたプレースホルダーを検出可能にするために、レイアウト サービスはこのフィールドをSitecoreレンダリング定義に追加します。 このレンダリングで使用する子プレースホルダーを選択します (例: <sc-placeholder name="child-placeholder"></sc-placeholder>)。 |
動的プレースホルダーキーの使用
わかりやすくするために、Layout Serviceでは、ルート プレースホルダー (通常はヘッダー、メイン、フッターなど) 以外のすべてのプレースホルダーが 動的プレースホルダーであると想定しています。
つまり、ページのレイアウト内のコンポーネントをレイアウトサービスで出力するには、{placeholder key}-{rendering unique id}-0の形式の動的プレースホルダーキーを使用して、それらのコンポーネントをアドレス指定する必要があります。例えば:
つまり、コンテンツ エディターを使用してページにレンダリングを追加することは、通常は実用的ではありません。
代わりに、エクスペリエンス エディターでページを開くと、必要なキーが計算されます。エクスペリエンス エディターの 公開 リボンから __Standard Valuesアイテムを開くこともできます。
レイアウト サービスでは、インデックス付き動的プレースホルダはサポートされていません。キーの最終的な値は常に0です。