当前位置: 代码网 > it编程>编程语言>Asp.net > ASP.NET Core中的wwwroot文件夹

ASP.NET Core中的wwwroot文件夹

2024年05月19日 Asp.net 我要评论
asp.net core中wwwroot文件夹默认情况下,asp.net core应用程序中的wwwroot文件夹被视为webroot文件夹,并且该文件夹或目录应位于根项目文件夹中。 在asp.net

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)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com