解決 .NET CORE3.0 MVC視圖層不即時編譯


微軟官方文檔

Razor 編譯

Razor SDK 默認啟用 Razor 文件的生成時和發布時編譯。 啟用后,運行時編譯將補充生成時編譯,允許更新 Razor 文件(如果對其進行編輯)。

運行時編譯

為所有環境和配置模式啟用運行時編譯:

  1. 安裝 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包。

  2. 更新項目的 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
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM