问题

最近的项目中需要修改 Web Root 路径,按照老方法发现报异常,于是 Google 得知相关方法在 ASP.NET 6 中有所修改。

代码

ASP.NET 5

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            //这里指定新位置
            webBuilder.UseWebRoot("webroot")
                      .UseStartup<Startup>();
        });

ASP.NET 6

var builder = WebApplication.CreateBuilder(new WebApplicationOptions
{
    Args = args,
    //这里指定新位置,也可以使用绝对路径
    WebRootPath = "webroot"
});

var app = builder.Build();

若要修改 Content Root 路径也可以在这里一并修改。

总结

根据微软官方文档解释:

Content 根目录是指向以下内容的基路径:

  • 托管应用的可执行文件 (.exe)。

  • 构成应用程序的已编译程序集 (.dll)。

  • 应用使用的内容文件,例如:

    • Razor 文件(.cshtml、.razor)
    • 配置文件(.json、.xml)
    • 数据文件 (.db)
  • Web 根目录,通常是 wwwroot 文件夹。

在开发中,内容根目录默认为项目的根目录。 此目录还是应用内容文件和 Web 根目录的基路径。 在构建主机时设置路径,可指定不同的内容根目录。

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

  • 样式表 (.css)
  • JavaScript (.js)
  • 图像(.png、.jpg)