netcore 编译 html,Razor ASP.NET Core 中的文件编译

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

Razor 编译

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

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

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

在" 创建新的 ASP.NET Core Web 应用程序" 对话框中:

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

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

使用 -rrc 或 --razor-runtime-compilation 模板选项。 例如,以下命令创建启用了 Razor 运行时编译的新 Pages 项目:

dotnet new webapp --razor-runtime-compilation

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

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

更新项目的 Startup.ConfigureServices 方法以包含对 AddRazorRuntimeCompilation 的调用。 例如:

public void ConfigureServices(IServiceCollection services)

{

services.AddRazorPages()

.AddRazorRuntimeCompilation();

// code omitted for brevity

}

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

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

使用编译视图。

不会在生产环境中启用文件观察程序。

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

修改 environmentVariables launchSettings.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特性指定要执行的应用程序启动代码。 该启动代码启用运行时编译。

为类库启用运行时编译 Razor

请考虑以下方案 Razor :页面项目引用类库 (名为 MYCLASSLIB 的 Razor RCL) 。 RCL 包含一个 _Layout 的 cshtml 文件,其中的所有团队 MVC 和 Razor 页面项目都使用。 需要为 RCL 中的 _Layout cshtml 文件启用运行时编译。 在页面项目中进行以下更改 Razor :

配置中的运行时编译选项 Startup.ConfigureServices :

public void ConfigureServices(IServiceCollection services)

{

services.AddRazorPages();

services.Configure(options =>

{

var libraryPath = Path.GetFullPath(

Path.Combine(HostEnvironment.ContentRootPath, "..", "MyClassLib"));

options.FileProviders.Add(new PhysicalFileProvider(libraryPath));

});

}

在前面的代码中,构造 MyClassLib RCL 的绝对路径。 PHYSICALFILEPROVIDER API用于查找该绝对路径中的目录和文件。 最后,将 PhysicalFileProvider 实例添加到 file 提供程序集合,该集合允许访问 RCL 的文件 。

其他资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值