有一個老項目使用Aspnet MVC4開放的.每次發(fā)布后,第一次訪問都特別慢, 簡單研究發(fā)現(xiàn)第一次訪問某個cshtml(View)文件,都會編譯.這個導致第一次加載特別慢.
簡單研究后發(fā)現(xiàn)在項目中增加MvcBuildViews后,會預編譯號所有的Cshtml文件.
.csProj文件增加如下配置.(注意,以前的項目文件需要unload項目后,才能編輯csproj文件, 或者用第三方編輯器直接編輯.csproj文件)
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<MvcBuildViews>False</MvcBuildViews>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<MvcBuildViews>True</MvcBuildViews>
</PropertyGroup>
以上的配置在Debug時關(guān)閉了MvcBuildViews,只在Release打開. 畢竟編譯View還是要一點時間的.
注意如果
EnableUpdatable是True,會導致預編譯失敗.<EnableUpdatable>false</EnableUpdatable>
后記
后來發(fā)現(xiàn)預編譯效果一般, 老項目第一次訪問慢主要是初次啟動時,會緩存大量信息造成. 不過預編譯還是提高了一點效率.