ASP.NET Core中的wwwroot文件夹

ASP.NET Core中wwwroot文件夹

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

添加wwwroot(webroot)文件夹

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

现在, 让我们使用Empty项目模板来创建一个ASP.NET Core应用程序, 然后了解如何添加wwwroot文件夹。

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

在早期的ASP.NET应用程序中,可以从项目根文件夹或它下面的任何其他文件夹提供静态文件。 但这已在ASP.NET Core中更改。

现在,只能通过HTTP请求为webroot – wwwroot文件夹或其下的任何子文件夹中的文件提供服务。

其他所有文件均被阻止,默认情况下无法提供。 但是,如果您愿意,还可以更改此默认行为。

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

现在,您可以使用基本URL和文件名访问静态文件,例如CSS,js,lib。

例如,您可以通过https:// localhost: /js/site.js访问js文件夹中的上述site.js文件。

注意:为了提供静态文件,您需要在Startup.cs文件的“ Configure()”方法中包括app.UseStaticFiles()中间件组件。

wwwroot可以重命名吗?

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

例如,让我们将wwwroot文件夹重命名为“ MyRoot”文件夹。

将wwwroot文件夹重命名为MyRoot之后,您需要调用UseWebRoot()方法以将MyRoot文件夹配置为Program类的Main()方法中的webroot文件夹,如下所示。

如何访问wwwroot文件夹?

如上所示, 我们可以创建基于自身重命名的文件夹, 也可以使用wwwroot文件夹, 接下来, 我们在MyRoot文件夹当中,添加一个index.html文件, 并且修改html当中的内容, 如下所示。

然后,启动应用程序, 当创建的是默认的Empty模板的程序,试图访问根文件夹下的index.html,如下所示。

之所以没有像预期的那样获取输出,因为我们没有任何中间件可以为请求处理管道中的静态文件服务。

如何配置静态文件中间件?

为了处理静态资源,我们需要在应用程序的应用程序请求处理管道中配置一个名为 UseStaticFiles() 中间件件。

UseStaticFiles()中间件是由框架提供的内置中间件ASP.NET用于处理核心应用程序中的静态ASP.NET文件。

让我们修改Startup中的Configure方法,将 UseStaticFiles()中间件添加到应用程序的请求处理管道中, 如下所示。

接下来将按预期方式看到输出,如下图所示。

现在,如果从 URL 中删除 index.html ,将提示找不到此localhost页面, 但是,我们想要的是,当我们导航到上文所示的URL 时,我们希望我们的 index.html 页面能够满足请求。

也就是说,我们需要将 index.html 页面设置为默认页面。

如何设置默认页面?

大多数Web应用程序都有一个默认页面,例如index.html或default.html作为启动页面,因为它很容易记住。

当用户访问该应用程序的根URL时,将显示该网页。 例如,如果您有一个名为index.html的页面,并且希望将该页面作为默认页面,以便每当任何用户访问您的根URL时,都将显示该页面。

为了将位于wwwroot文件夹中的index.html页面作为应用程序的默认页面提供服务,您需要向请求处理管道中添加另一个中间件,即UseDefaultFiles()中间件。

因此,如下所示修改Startup类的Configure()方法以使用UseDefaultFiles()中间件,该中间件将为您的应用程序设置默认页面。

注意:您需要在UseStaticFiles()中间件之前添加UseDefaultFiles()中间件,以便提供默认文件。 您需要记住的一点是UseDefaultFiles()中间件只是URL重写器,它永远不会提供静态文件。 该中间件的工作是简单地将传入URL重写为默认文件,然后由静态文件中间件提供服务。

如何将“自定义HTML页”设置为默认页面?

UseDefaultFiles()中间件将在wwwroot文件夹中搜索以下文件:

  • index.htm
  • index.html
  • default.htm
  • default.html

这是默认行为。 但是,如果您愿意,还可以更改此默认行为。 例如,让我们将另一个HTML页面添加到项目wwwroot文件夹中,其名称为Page1.html。

添加Page1.html文件后,wwwroot文件夹将包含两个HTML文件,如下图所示。

将Page1.html设置为默认页面:

现在,我们希望Page1.html页面成为我们的默认页面,而不是index.html页面。 为此,您需要按如下所示修改Startup类的Configure()方法。

在这里,我们将创建DefaultFilesOptions类的实例,并将默认文件名添加为Page1.html,然后将此对象传递给UseDefaultFiles中间件。

UseFileServer()中间件组件的用途是什么?

UseFileServer()中间件组件结合了UseStaticFiles,UseDefaultFiles和UseDirectoryBrowser中间件的功能。

我们已经讨论了UseStaticFiles和UseDefaultFiles中间件。 顾名思义,DirectoryBrowser中间件启用了目录浏览,使用户可以查看存储在特定目录中的文件。

在我们的示例中,我们可以使用UseFileServer()中间件替换UseStaticFiles()和UseDefaultFiles()中间件,如下所示。

到此这篇关于ASP.NET Core中的wwwroot文件夹的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • ASP.NET Core的中间件与管道介绍

    今天来讨论一个ASP.NET Core 很重要概念管道和中间件,在ASP.NET Core中,针对HTTP请求采用pipeline也就是通常说的管道方式来处理,而管道容器内可以挂载很多中间件(处理逻辑)“串联”来处理HTTP请求,每一个中间件都有权决定是否需要执行下一个中间件,或者直接做出响应.这样的机制使得HTTP请求能够很好的被层层处理和控制,并且层次清晰处理起来甚是方便. 示意图如下: 为了再次说明管道和中间件的概念,举一个官方给出的权限验证的例子,中间件A,B分别按顺序挂载在管道容器中,

  • ASP.NET Core基础之启动设置

    这一章,我们了解一下launchSettings.json的作用. 打开launchSettings.json 文件后,默认情况下,您将找到以下代码. { "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http:

  • ASP.NET Core中Startup类、Configure()方法及中间件详解

    ASP.NET Core 程序启动过程如下 1, Startup 类 ASP.NET Core 应用使用Startup类,按照约定命名为Startup.Startup类: 可选择性地包括ConfigureServices方法以配置应用的服务. 必须包括Configure方法以创建应用的请求处理管道. 当应用启动时,运行时调用ConfigureServices和Configure . Startup 方法体如下 public class Startup { // 使用此方法向容器添加服务 publ

  • ASP.NET Core基础之请求处理管道

    了解ASP.NET处理管道 为了理解ASP.NET Core中的请求处理管道概念,让我们修改Startup类的Configure()方法,如下所示. 在这里,我们将三个中间件组件注册到请求处理管道中. 如您所见,前两个组件是使用Use() 扩展方法注册的,因此它们有机会在请求处理管道中调用下一个中间件组件. 最后一个使用Run() 扩展方法注册,因为它将成为我们的终止组件,即它将不会调用下一个组件. 了解ASP.NET Core请求处理管道执行顺序 为了理解这一点,让我们将上面的输出与下图进行比

  • ASP.NET Core基础之Startup类

    ASP.NET Core必须包含Startup类.它就像 Global.asax 文件,我们传统的 .NET 应用程序.如名称建议的那样,在应用程序启动时首先执行它.在程序类的Main方法中配置主机时,可以使用UseStartup()扩展方法配置启动类.请查看下面的程序类,并重点介绍 WebBuilder.UseStartup() 方法. 名称"Startup"是按照ASP.NET Core约定进行的. 但是,您可以给Startup类指定任何名称,只需在UseStartup ()方法中

  • ASP.NET Core托管模型CreateDefaultBuilder()方法

    让我们讨论一下 CreateDefaultBuilder() 方法究竟对配置和设置 Web 服务器的作用.从托管的角度来看,一个ASP.NET Web 应用程序可以通过两种方式托管,即进程托管(InProcess)或进程外托管(OutOfProcess). 注:当我们使用任何模板创建新 ASP.NET Core Web 应用程序时,默认情况下,使用InProcess 托管创建项目文件,该托管用于在 IIS 或 IIS Express 方案中托管应用程序. 如何验证是否在进程内? 为了验证上面的观

  • ASP.NET Core基础之中间件

    什么是ASP.NET Core Middleware? ASP.NET Core中间件组件是被组装到应用程序管道中以处理HTTP请求和响应的软件组件(从技术上来说,组件只是C#类). ASP.NET Core应用程序中的每个中间件组件都执行以下任务. 选择是否将 HTTP 请求传递给管道中的下一个组件.这可以通过在中间件中调用下一个 next() 方法实现. 可以在管道中的下一个组件之前和之后执行工作. 在ASP.NET Core中,已经有很多内置的中间件组件可供使用,您可以直接使用它们. 如果

  • ASP.NET Core基础之Main方法讲解

    为什么ASP.NET Core采用Main方法? 需要记住的最重要的一点是,ASP.NET Core Web 应用程序最初作为控制台应用程序启动,Main() 方法是应用程序的入口点.因此,当我们执行ASP.NET Core Web应用程序时,首先它寻找 Main() 方法,这是执行开始的方法.然后,Main()方法将ASP.NET配置并启动它.此时,应用程序将成为ASP.NET Core Web应用程序. 如果进一步查看 Main() 方法的正文,则会发现它通过将命令行参数 args 作为参数

  • ASP.NET Core应用程序配置文件AppSetting.json

    AppSetting.json 当我们使用空项目模板或Razor页面或MVC模板或Web API模板创建ASP.NET Core Web应用程序时,Visual Studio会自动为我们创建appsettings.json文件,如下图所示. appsettings.json文件是一个应用程序配置文件,用于存储配置设置,例如数据库连接字符串,任何应用程序范围的全局变量等.如果打开ASP.NET Core appsettings.json文件,则默认情况下会看到以下代码 这是由Visual Stud

  • ASP.NET CORE基础教程

    目录 第一课 基本概念 第二课 控制器的介绍 第三课 视图与表单 第四课 数据验证 第五课 路由规则 第六课 应用发布与部署 源码地址 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 MVC设计模式的一种实现 环境准备 安装最新版Visual Studio 2017 安装最新版.NET Core Sdk 第二课 控制器的介绍 控制器定义方式: 命名以Controller结尾 使用

  • ASP.NET Core开发环境安装配置

    ASP.NET Core环境设置 1.如何设置用于.NetCore应用程序开发的开发机器 2.安装SDK和IDE 3.验证安装 开发和.NET Core应用程序所需的工具和软件 1.设备:(Windows.Mac.Linux) 2.IDE:Visual Studio.Visual Code 3.NetSDK:软件开发工具包,此工具包有助于开发和运行系统中的应用程序. 如何为构建 .NET Core/ASP.NET Core应用程序准备开发环境? NET Core可以通过两种方式安装: 1.通过安

随机推荐