DEV Community

tackme
tackme

Posted on • Edited on

2 1

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ファイルを変更した際には必ずソースコードのデプロイを行うよう注意してください。

参考

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs