【推荐】Razor文件编译 ASP.NET Core


Razor具有 .cshtml 扩展名的文件使用 SDK 在生成和发布时 Razor 进行编译。 可以选择通过配置项目来启用运行时编译。

Razor 编译

默认情况下,SDK 会启用文件的生成 Razor 时和发布时 Razor 编译。 启用后,运行时编译是对生成时编译的补充,允许文件在编辑 Razor 后进行更新。

 

创建项目时启用运行时编译

RazorPages 和 MVC 项目模板包含一个选项,用于创建项目时启用运行时编译。 3.1 及 ASP.NET Core支持此选项。

在"创建新 web ASP.NET Core"对话框中:

 

选择"Web 应用程序"或 "Web 应用程序 (模型-视图-控制器) 模板。

选中" 启用 Razor 运行时编译" 复选框。

 

在现有的项目中启用运行时编译

为现有项目的所有环境启用运行时编译:

  1. 安装Microsoft.AspNetCore.Mvc。 RazorRuntimeCompilation NuGet包。
  2. 更新项目的 Startup.ConfigureServices 方法以包含对 AddRazorRuntimeCompilation 的调用。 例如: 。
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages()
            .AddRazorRuntimeCompilation();
    
        // code omitted for brevity
    }
    GarsonZhang www.yesdotnet.com

有条件地启用现有项目中的运行时编译(推荐)

启用运行时编译时可使其仅用于本地开发。 以这种方式有条件地启用可确保已发布的输出:

  • 使用编译视图。
  • 不会在生产环境中启用文件观察程序。

仅在开发环境中启用运行时编译:

  1. 安装Microsoft.AspNetCore.Mvc。 RazorRuntimeCompilation NuGet包。
  2. 在 上修改 environmentVariableslaunchSettings.js 配置文件部分:
    • 验证 ASPNETCORE_ENVIRONMENT 是否设置为 "Development" 。
    • 将 ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 设置为 "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"。

在下面的示例中, 和 启动配置文件的开发环境中启用了 IIS Express RazorPagesApp 运行时编译:

{
    "iisSettings": {
      "windowsAuthentication": false,
      "anonymousAuthentication": true,
      "iisExpress": {
        "applicationUrl": "http://localhost:57676",
        "sslPort": 44364
      }
    },
    "profiles": {
      "IIS Express": {
        "commandName": "IISExpress",
        "launchBrowser": true,
        "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Development",
          "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
        }
      },
      "RazorPagesApp": {
        "commandName": "Project",
        "launchBrowser": true,
        "applicationUrl": "https://localhost:5001;http://localhost:5000",
        "environmentVariables": {
          "ASPNETCORE_ENVIRONMENT": "Development",
          "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
        }
      }
    }
  }

项目的 类中不需要更改 Startup 代码。 在运行时,ASP.NET Core在中搜索程序集级 HostingStartup属性 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 。 HostingStartup属性指定要执行的应用启动代码。 该启动代码启用运行时编译。

 

参考: https://docs.microsoft.com/zh-cn/aspnet/core/mvc/views/view-compilation?view=aspnetcore-5.0

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:维护项目中的iconfont图标库
下一篇:asp.net core 断点调试无法修改代码
评论列表

发表评论

评论内容
昵称:
关联文章

推荐Razor文件编译 ASP.NET Core
.Net Core Razor编译,动态编译,混合编译
.Net Core 5.0 Razor编译,动态编译,混合编译
ASP.NET Core官网教程,资料查找
asp.net - 在 ASP.NET Core MVC 中嵌套 TagHelper
ASP.NET Core 使用 LESS
.net Core编译出现错误:指定的任务可执行文件“sgen.exe”未能运行,文件名或扩展名太长
ASP.NET Core MVC 在过滤器ActionFilter中保存页面的生成的html静态页面文件
asp.net core mvc修改cshtml试图热加载动态更新
ASP.NET Core开发者学习路线图
C# ASP.NET Core开发学生信息管理系统(一)
在cshtml文件中使用预编译语法
asp.net core 断点调试无法修改代码
ASP.NET MVC和ASP.NET Core MVC中获取当前URL/Controller/Action
Cannot resolve scoped service from root provider ASP.NET Core
asp.net core 支持多种身份认证方式
C# ASP.NET Core开发学生信息管理系统(三)
.NET Core发布后IIS部署无法访问静态文件
ASP.NET Core 中读取Post Request.Body 的正确姿势
ASP.NET Core MVC中的路由约束

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码