Razor 編譯
Razor SDK 默認啟用 Razor 文件的生成時和發布時編譯。 啟用后,運行時編譯將補充生成時編譯,允許更新 Razor 文件(如果對其進行編輯)。
運行時編譯
為所有環境和配置模式啟用運行時編譯:
-
安裝 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。
-
更新項目的
Startup.ConfigureServices
方法以包含對AddRazorRuntimeCompilation
的調用。 例如:
public void ConfigureServices(IServiceCollection services) { services.AddRazorPages() .AddRazorRuntimeCompilation(); // code omitted for brevity }
有條件地啟用運行時編譯
啟用運行時編譯時可使其僅用於本地開發。 以這種方式有條件地啟用可確保已發布的輸出:
- 使用編譯視圖。
- 較小。
- 不會在生產環境中啟用文件觀察程序。
基於環境和配置模式啟用運行時編譯:
根據活動的 Configuration
值,有條件地引用 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 包:
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.0" Condition="'$(Configuration)' == 'Debug'" />
更新項目的 Startup.ConfigureServices
方法以包含對 AddRazorRuntimeCompilation
的調用。 有條件地執行 AddRazorRuntimeCompilation
,使其僅當 ASPNETCORE_ENVIRONMENT
變量設置為 Development
時在調試模式下運行:
public IWebHostEnvironment Env { get; set; } public void ConfigureServices(IServiceCollection services) { IMvcBuilder builder = services.AddRazorPages(); #if DEBUG if (Env.IsDevelopment()) { builder.AddRazorRuntimeCompilation(); } #endif // code omitted for brevity }