ASP.NETコアレンダリングのレイアウトおよびサイトの要件

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

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

!重要以前にアプリを統合していた場合、それは旧版のASP.NETコアレンダリングSDK(バージョン22以前)を使用しています。このSDKは更新を受け取っていないため、最新のバージョンへのアップグレード をお勧めします。

Sitecore Layout ServiceやASP.NET Coreレンダリング用のサイトやレイアウト構造を構築する際には、Sitecore MVCを使った開発との間に重要な違いがあります。これらの点を念頭に置いてください。サイトを構築したり、既存のコンテンツをASP.NET Coreで利用できるように再構成したりする際に。

!注これらの違いは、JSSを扱ったことのある開発者にとっては馴染み深いものであり、特にSitecoreファーストのワークフローを使う場合に顕著です。

サイト定義の設定

レンダリングホストがサイトの正面玄関であっても、レイアウトサービスで使用するためには設定済み のサイト定義 が必要です。ASP.NETコアのレンダリングサイトでサイト定義を設定する際:

  • rootPathは他のSitecoreサイトと同様に設定してください。
  • hostNameまたはtargetHostNameURLをContent Delivery(CD)サーバーの外部向けホスト名として設定してください。このホストは、レイアウトサービスがメディアライブラリURLを出力する際に使われます(CDNを使わない場合は)。
  • サイト name はレイアウトサービスクライアントの デフォルトリクエスト値で設定されているはずです。

エクスペリエンスエディターサポートの設定

エクスペリエンスエディターをサポートするには、レイアウト、サイトルート、アプリ設定を適切に設定する必要があります。

JSONレンダリングの使用

ASP.NET Coreサイトで使う新しいレンダリングを作成する際は、コントローラーレンダリングやビューレンダリングなどのSitecore MVCレンダリングタイプは使わないでください。必ずJsonレンダリング(/sitecore/templates/Foundation/JavaScript Services/Json Rendering)を使いましょう。

このレンダリングタイプは、レイアウトサービスによってASP.NETコアコンポーネントのレンダリングに必要なデータでシリアライズされます。Jsonレンダリングで重要なフィールドには以下が含まれます:

フィールド

概要

コンポーネント名

これにより、レイアウトサービスの出力に componentName プロパティが入力されます。 レンダリングエンジンでコンポーネントを設定する際、この名前にマッピングします。

データソースの所在地

Sitecore MVCの発達時と同じ挙動をします。

データソーステンプレート

Sitecore MVCの発達時と同じ挙動をします。

Experience Editorで常にフィールドエディターのボタンを表示する

エクスペリエンスエディターのコンポーネント上でフィールドエディタを有効にし、非インラインフィールドタイプの編集に役立ちます。

フィールドエディタ表示フィールド

上記のフィールドエディタのフィールドを設定します(デフォルトはすべてのフィールドです)。

キャッシュ可能(および関連ファイル)

コンポーネントの出力キャッシュを設定します。レイアウトサービスについては「出力キャッシュの実装」を参照してください。

レンダリングコンテンツリゾルバ

レンダリング用のデータを出力する際に、カスタムのシリアライゼーション構成やC#クラスを指定することができます。詳細は「内容リゾルバによるレンダリングの作成」を参照してください。

レイアウトサービスプレースホルダー

>[!重要]
> アイテムの完全な構造化レイアウトを出力するために、レイアウトサービスはレンダリング上に存在するプレースホルダーを知る必要があります。
> これらの露出したプレースホルダーを発見可能にするために、レイアウトサービスはこのフィールドをSitecoreレンダリング定義に追加します。
> このレンダリングで使いたい子プレースホルダー(例: )を選択できます。

動的プレースホルダーキーの使用

簡単さのため、レイアウトサービスはルートのプレースホルダー(通常はヘッダー、メイン、フッターなど)以外のすべてのプレース ホルダーが動的プレースホルダーであると仮定しています。

つまり、ページのレイアウト内のコンポーネントをレイアウトサービスで出力するには、フォーマット {placeholder key}-{rendering unique id}-0の動的プレースホルダーキーでアドレス指定する必要があります。例えば:

/main/accordion-{3A59ED89-58AB-4B51-8F9C-6100453DDFEC}-0

つまり、コンテンツエディターを使ってページにレンダリングを追加するのは通常非現実的です。

代わりに、エクスペリエンスエディターでページを開くと、必要なキーが計算されます。また、PublishリボンからExperience Editorの__Standard Values項目を開くことも可能です。

!注レイアウトサービスはインデックス付き動的プレースホルダーをサポートしていません。キーの最終値は常にゼロです。

この記事を改善するための提案がある場合は、 お知らせください!