ASP.NET Core 中的 wwwroot 文件夹

在本文中,我将讨论ASP.NET Core应用程序中的 wwwroot 文件夹。请阅读我们之前讨论过ASP.NET Core 请求处理管道的文章。在本文的最后,您将了解 wwwroot 文件夹及其需求以及如何在 ASP.NET Core 应用程序中进行配置。

ASP.NET Core 中的 wwwroot 文件夹是什么?

默认情况下,ASP.NET Core 应用程序中的 wwwroot 文件夹被视为 webroot 文件夹,并且此文件夹或目录应该存在于根项目文件夹中。在 ASP.NET Core 应用程序中,静态文件可以存储在 webroot 文件夹下的任何文件夹中,并且可以使用该根目录的相对路径进行访问。

在 ASP.NET Core 应用程序中添加 wwwroot (webroot) 文件夹:

当您使用 Web 和 MVC 模板创建 ASP.NET Core Web 应用程序时,默认情况下会在根项目文件夹中创建此文件夹 (wwwroot)。但是,如果您使用 Empty 模板创建新的 .NET Core 应用程序,则默认情况下,Visual Studio 不会创建此文件夹。

当我们从头开始讨论所有内容时,让我们使用 Empty Project 模板创建一个 ASP.NET Core 应用程序,然后了解如何在其中添加 wwwroot 文件夹。

创建 ASP.NET Core 应用程序:

首先,使用空项目模板创建一个名为“FirstCoreWebApplication”的新 ASP.NET Core 应用程序。应使用以下结构创建项目。

ASP.NET Core 中的 wwwroot 文件夹_第1张图片

如上图所示,我们的应用程序中没有名为 wwwroot 的文件夹。

在 ASP.NET Core 中添加 wwwroot (webroot) 文件夹:

为了添加 wwwroot 文件夹,右键单击项目,然后选择 add => new folder 选项,然后将文件夹名称提供为 wwwroot。创建文件夹后,请查看文件夹符号,如下所示。

ASP.NET Core 中的 wwwroot 文件夹_第2张图片

 

wwwroot (webroot) 文件夹将包含在 ASP.NET Core 中的内容:

在早期的 ASP.NET 应用程序中,可以从项目根文件夹或其下的任何其他文件夹中提供静态文件。但是这在 ASP.NET Core 中已经改变了。现在,只有那些存在于 webroot 中的文件 - wwwroot 文件夹或其下的任何子文件夹可以通过 HTTP 请求提供服务。默认情况下,所有其他文件都被阻止并且无法提供。但是,如果您愿意,您也可以更改此默认行为。

通常,wwwroot 文件夹内应该有不同类型的静态文件(如 JavaScript、CSS、图像、库脚本等)的单独文件夹,如下所示:

ASP.NET Core 中的 wwwroot 文件夹_第3张图片

现在,您可以使用基本 URL 和文件名访问静态文件,例如 CSS、js、lib。例如,可以通过https://localhost:/js/site.js访问 js 文件夹中的上述 site.js 文件

注意:为了提供静态文件,您需要在 Startup.cs 文件的 'Configure()' 方法中包含app.UseStaticFiles() 中间件组件。如果目前还不清楚,请不要担心,我们将在下一篇文章中通过示例讨论有关静态文件中间件的所有内容。

我们可以重命名 wwwroot 文件夹吗?

是的。您可以根据自己的选择将 wwwroot 文件夹重命名为任何其他名称,并将其设置为 webroot,同时在 Program.cs 文件中准备托管环境。

例如,让我们将 wwwroot 文件夹重命名为“MyWebRoot”文件夹。将 wwwroot 文件夹重命名为 MyWebRoot 后,需要在 Program 类的 Main() 方法中调用 UseWebRoot() 方法将 MyWebRoot 文件夹配置为 webroot 文件夹,如下所示。

public class Program
{
    public static void Main(string[] args)
    {
        CreateHostBuilder(args).Build().Run();
    }

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup().UseWebRoot("MyWebRoot");
            });
}

完成上述更改后,现在 MyWebRoot 文件夹将充当您的应用程序的 Webroot 文件夹,并且可以为 HTTP 请求的静态文件提供服务。

在下一篇文章中,我将讨论如何使用静态文件中间件 组件在 ASP.NET Core 中处理静态文件。在这里,在本文中,我尝试解释ASP.NET Core应用程序中的 wwwroot 文件夹。希望本文能帮助您了解 ASP.NET Core 应用程序中的 wwwroot 文件夹。 

你可能感兴趣的:(asp.net,后端,microsoft)