DEV Community

tackme
tackme

Posted on • Edited on

Sitecoreでウェブサイトの初期表示を速くする方法(Viewのプリコンパイルの設定方法)

Sitecoreでは初めて描画するレンダリング(View)はアクセス時にコンパイルされます。ページへの初回アクセスが遅くなる原因の一つは、この実行時コンパイルにあります。
あらかじめすべてのViewをコンパイルしておくことで、初期表示時間を改善することができます。

設定方法

  1. Viewファイルが含まれているプロジェクトに、NuGetで RazorGenerator.MsBuild をインストールします。依存関係は無視してOKです。
  2. 以下のパッチを適用します。

    <?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>
    
  3. プロジェクトをデプロイします。

以上です。

dnSpy等でビルドしたアセンブリを除いてみると、名前空間ASPにコンパイルされたViewが生成されていることを確認出来ます。

注意点

プリコンパイルを設定すると、たとえサーバー上のViewファイルを編集してもページに適用されなくなります。Viewファイルを変更した際には必ずソースコードのデプロイを行うよう注意してください。

参考

Top comments (0)