ASP.NET Core基础知识概述(三)

本文章翻译自微软官方文档: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/?view=aspnetcore-7.0&tabs=windows

目录
ASP.NET Core基础知识概述(一)
ASP.NET Core基础知识概述(二)
ASP.NET Core基础知识概述(三)

路由(Routing)

路由是映射到处理程序的URL模式。处理程序可以是一个典型的Razor页面、一个MVC控制器中的action方法,或者是一个中间件。可以通过ASP.NET Core路由对应用程序的url控制。一下是由ASP.NET Core web应用程序模板生成的代码,调用了UseRouting方法:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddRazorPages();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();

app.UseRouting();

app.UseAuthorization();

app.MapRazorPages();

app.Run();

错误处理(Error handling)

ASP.NET Core有内置的错误处理功能,比如:

  • A developer exception page(开发人员异常页)
  • Custom error pages(自定义错误页)
  • Static status code pages(静态状态代码页)
  • Startup exception handling(启动异常处理)

发起HTTP请求(Make HTTP requests)

IHttpClientFactory的其中一个作用是生成HttpClient实例,工厂可以:

  • 提供一个中心位置,用于命名和配置合理的 HttpClient 实例。比如,注册并配配置一个人用于访问GitHub的 github 客户端。注册并配置默认客户端以实现其他目的。
  • 支持注册并链接多委托处理程序并生成出站请求中间件管道。这种模式非常类似于ASP.NET Core的中间件请求管道。这种模式提供了一个用于管理HTTP请求切面相关的机制,包括缓存、异常处理、序列化和日志记录。
  • 可以集成一个非诚流行的用于瞬时错误处理的第三方库。
  • 管理基础 HttpClientHandler 实例的池和生存期,避免手动管理 HttpClient 生存期时可能出现的常见 DNS 问题。
  • 通过 ILogger 添加可配置的日志记录体验,用于记录通过工厂创建的客户端发送的所有请求。

Content root

content root是以下内容的基路径:

  • 托管应用的可执行文件 (.exe)。
  • 构成应用程序的已编译程序集 (.dll)。
  • 应用使用的内容文件,例如:
    • Razor 文件(.cshtml、.razor)
    • 配置文件(.json、.xml)
    • 数据文件 (.db)
  • Web 根目录,通常是 wwwroot 文件夹。
    在开发中,content root默认是项目的根目录。此目录还是应用内容文件和 Web 根目录的基路径。 在构建主机时设置路径,可指定不同的内容根目录。

Web root

Web root是公用静态资源文件的基路径,例如:

  • Stylesheets (.css)
  • JavaScript (.js)
  • Images (.png, .jpg)

默认情况下,静态文件仅从 Web 根目录及其子目录提供。Web root路径默认为 {content root}/wwwroot。 在构建主机时设置路径,可指定不同的 Web root。

防止使用项目文件中的 <Content> 项目项在 wwwroot 中发布文件。 下面的示例会阻止在 wwwroot/local 及其子目录中发布内容:

<ItemGroup>
  <Content Update="wwwroot\local\**\*.*" CopyToPublishDirectory="Never" />
</ItemGroup>

在 Razor.cshtml 文件中,~/ 指向 Web 根。 以 ~/ 开头的路径称为虚拟路径。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容