デフォルトのレンダリング ビュー プロバイダーのオーバーライド

概要

レンダリング ビュー プロバイダーを使用して、/Views フォルダーのパスをオーバーライドできます。

各ビュー (.cshtml ファイル) は、ストアフロントでのレンダリングのための HTML を格納します。.cshtml ファイルを変更しないでください。これらはソフトウェア アップデートのインストール時に上書きされるためです。代わりに、サイトの CustomRenderingViewPath 設定でカスタマイズされたビューの代替の場所を定義してください。

レンダリング ビュー プロバイダーを使用して、サイトごとにビューをオーバーライドできます。このプロバイダーは XC Storefront Foundation アセンブリの一部であり、IoC を使用します。デフォルトの動作では、~/Views 以外の別のルート フォルダーを使用できます。

ViewProviderConfigpath.png

[CustomRenderingViewPath] フィールドでパスを指定すると、カスタム レンダリング ビュー フォルダーが最初にチェックされ、ファイルが存在するかどうかが判断されます。存在しない場合は、デフォルトの ~/Views バージョンのビューが使用されます。

重要

カスタム フォルダーの構造は、ストアフロント関連のコンポーネントの ~/Views フォルダー内の構造と同じである必要があります。たとえば、/Views/Commerce/Catalog/ProductPrice.cshtml がオーバーライドされる場合は、カスタム ビュー フォルダーのパスである /<CustomViews>/Views/Commerce/Catalog/ProductPrice.cshtml に配置する必要があります。

ディスク上のカスタム ビュー フォルダーには、~/Views フォルダー内で見つかった web.config ファイルのコピーが含まれている必要があります。

レンダリング ビュー プロバイダーは、 Sitecore.Commerce.XA.Foundation.Common.config 設定ファイルに登録されます。

 <sitecore>
     <services>
       <register serviceType="Sitecore.Commerce.XA.Foundation.Common.Providers.IRenderingViewProvider,
 Sitecore.Commerce.XA.Foundation.Common"
 implementationType="Sitecore.Commerce.XA.Foundation.Common.Providers.RenderingViewProvider,
 Sitecore.Commerce.XA.Foundation.Common" lifetime="Singleton"/>
     </services>
 </sitecore> 

IRenderingViewProvider インターフェイスを実装して、それに応じて設定ファイルを調整することにより、現在の実装を置き換えることができます。