Sitecoreでは初めて描画するレンダリング(View)はアクセス時にコンパイルされます。ページへの初回アクセスが遅くなる原因の一つは、この実行時コンパイルにあります。
あらかじめすべてのViewをコンパイルしておくことで、初期表示時間を改善することができます。
設定方法
- Viewファイルが含まれているプロジェクトに、NuGetで
RazorGenerator.MsBuild
をインストールします。依存関係は無視してOKです。 -
以下のパッチを適用します。
<?xml version="1.0" encoding="utf-8"?> <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> <sitecore> <settings> <!-- 物理ファイルの代わりにプリコンパイルされたViewを使用する設定 --> <setting name="Mvc.UsePhysicalViewsIfNewer"> <patch:attribute name="value">false</patch:attribute> </setting> </settings> <mvc> <!-- プリコンパイルされたViewを使用するアセンブリ一覧 --> <precompilation> <assemblies> <assemblyIdentity name="Habitat.Foundation.Account" /> <assemblyIdentity name="Habitat.Feature.Search" /> </assemblies> </precompilation> </mvc> </sitecore> </configuration>
プロジェクトをデプロイします。
以上です。
dnSpy等でビルドしたアセンブリを除いてみると、名前空間ASP
にコンパイルされたViewが生成されていることを確認出来ます。
注意点
プリコンパイルを設定すると、たとえサーバー上のViewファイルを編集してもページに適用されなくなります。Viewファイルを変更した際には必ずソースコードのデプロイを行うよう注意してください。
Top comments (0)