ASP.NET Core 应用程序中的静态文件中间件的实现
 更新时间:2020年04月19日 09:41:24   作者:灰太狼的梦想  

这篇文章主要介绍了ASP.NET Core 应用程序中的静态文件中间件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在这篇文章中,我将向大家介绍,如何使用中间件组件来处理静态文件。这篇文章中,我们讨论下面几个问题:

在ASP.NET Core中,我们需要把静态文件存放在哪里?
在ASP.NET Core中 wwwroot文件夹是啥?
怎样在ASP.NET Core应用程序中,配置静态文件中间件?
UseFileServer中间件的作用是什么?

最重要的特性之一就是;几乎所有的web应用程序都应该具备直接从文件系统存取静态文件的能力。ASP.NET Core能够直接从客户端获取应用程序的静态文件,比如:HTML、Images、CSS、以及JavaScript文件。但是最重要的一点,你需要记住的是:默认情况下,在ASP.NET Core中并不能直接获取访问这些静态文件。需要额外在做一些配置,ASP.NET Core才能够直接获取访问这些静态文件。
在ASP.NET Core中,我们需要把静态文件存放在哪里?
在ASP.NET Core中,默认存放静态文件的目录或者地方就是wwwroot文件夹,并且这个wwwroot文件夹需要放在项目的根目录下面。默认情况下,这是ASP.NET Core应用程序,能直接访问静态文件的目录。但是我们可以通过使用UseWebRoot方法来改变这一默认行为。在后面的文章中,我将介绍怎么改变默认存在静态文件的目录。在这篇文章中,我们就使用wwwroot文件夹,来存放静态文件。
我们打开,之前文章中,做的例子,创建的空白的ASP.NET Core项目:

可以看到空白模板,建的ASP.NET Core项目是没有wwwroot文件夹的。
添加wwwroot文件夹
右键项目–选择新建文件夹—【wwwroot】,一旦我们创建了wwwroot文件夹,我们在里面添加一个html文件:MyCustom.html

在HTML文件中,加上这句代码:

现在让我们来运行程序,输入这个地址:localhost:51519/MyCustom.html

你可以看到,并没有得到我们想要的输出结果,页面上显示的是我们在Configure方法中,使用Run扩展方法,输出的结果:也就是Get One GetTwo

我们之所以没有得到想要的结果:是因为在请求处理管道中没有任何一个中间件,可以处理静态文件。
配置静态文件中间件
ASP.NET Core中,提供了一个UseStaticFiles中间件,它可以用来处理静态文件。我们来修改一下Configure方法,添加这个中间件:

现在运行程序,输出刚才的地址,就能得到想要的输出结果了。

设置默认页
大多数应用程序,都有一个默认的页面,例如:index.html或者default.html,作为它的启动页面,启动页面就是用户访问程序的根路径的时候看到的页面。例如:如果你有一个默认的index.html页面,那么不管什么时候用户访问你的网站根路径的时候,看到的都是这个页面。
现在我们在wwwroot文件夹下,添加一个index.html文件:

写上这句代码:

现在运行程序,访问根路径:localhost:51519/

可以看到,得到的结果并不是我们想要的。为了得到想要的结果,我们需要添加另外一个中间件,也就是UseDefaultFiles()到请求管道中去。所以我们修改一下Configure方法:

现在我们运行程序:

咦,咋回事,我们不是加了默认页面中间件了么,怎么没效果???这是因为我们添加的顺序不对:

再运行就是我们想要的结果了。

注意:你需要将UseDefaultFiles中间件,写在UseStaticFiles中间件的上面。需要记住的是:UseDefaultFiles中间件仅仅只是将URL重写,并不处理静态文件。它的工作就是把URL重写为默认文件,然后UseStsticFiles中间件,就去处理这个默认文件,我们就看到页面了。
UseDefaultFiles中间件,将会在wwwroot目录下面,找下面的文件:
index.htm
index.html
default.htm
default.html
这就是默认的行为。但是你同样可以改变这一约定俗成的行为。例如,如果你想MyCustom.html,作为默认页面,你可以这样:在Configure方法中,写如下代码:

现在运行程序就得到你想要的结果了:

如果没有得到你想要的结果,可能就是页面有缓存,用Ctrl+F5强制刷新一下,就行了。
UseFileServer中间件的作用是什么?
UseFileServer中间件组件,包含这几个中间件的功能:UseStaticFiles、UseDefaultFiles以及UseDirectoryBrowser.我们已经学习了UseStaticFiles和UseDefaultFiles这两个中间件。UseDirectoryBrowser中间件,根据名字来看就是启动目录浏览,也就是允许用户可以看到指定目录下面的文件。在我们的例子中,我们可以使用UseFileServer中间件,来取代UseDefaultFiles和UseStsticFiles中间件,看:

然后运行程序:结果也是一样:

可以看到使用UseFileServer中间件,就很好的替换了之前的代码了:是不是很厉害!
到此这篇关于ASP.NET Core 应用程序中的静态文件中间件的实现的文章就介绍到这了,更多相关ASP.NET Core 静态文件中间件内容请搜索华域联盟以前的文章或继续浏览下面的相关文章希望大家以后多多支持华域联盟!

您可能感兴趣的文章:.Net Core中间件之静态文件(StaticFiles)示例详解.net core异常中间件的使用ASP.NET Core中间件初始化的实现详解ASP.NET Core 中基于工厂的中间件激活的实现方法在 asp.net core 的中间件中返回具体的页面的实现方法ASP.NET Core自定义中间件如何读取Request.Body与Response.Body的内容详解.net core webapi通过中间件获取请求和响应内容的方法利用.net core实现反向代理中间件的方法如何给asp.net core写个中间件记录接口耗时ASP.NET Core中间件计算Http请求时间示例详解ASP.NET Core应用错误处理之ExceptionHandlerMiddleware中间件呈现“定制化错误页面”.net core静态中间件的使用

ASP.NET
Core
静态文件
中间件

相关文章
Ajax+asp.net智能匹配检索(含图含完整代码)使用谷歌搜索引擎的用户都知道,只要在文本框中输入部分关键字,就能显示相关搜索提示信息列表 2012-06-06
ASP.NET实现进度条效果这篇文章主要为大家详细介绍了ASP.NET实现简单的进度条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 2017-06-06
jquery repeater 模仿 Google 展开页面预览子视图节后的这一周, 希望大家能挺住, hehe, 这两天给大家准备一个 Repeater 子视图的例子, 模拟了 Google 搜索结果后的页面的预览, 其实也只是显示了一段问题 2011-10-10
详解Spring Boot 中使用 Java API 调用 lucene这篇文章主要介绍了详解Spring Boot 中使用 Java API 调用 lucene,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 2017-11-11
实例说明asp.net中的简单角色权限控制权限控制在信息管理中属于基本功能,权限控制中其中以Window权限为模型的角色用户(也称用户组用户)模型使用较多。本文以网站管理后台权限控制为例简要说明。 2009-10-10
System.Data.SqlClient.SqlException: 无法打开登录所请求的数据今天帮客户配置服务器的时间,安全设置后,将sqlserver以普通用户权限运行的时候提示这个错误。 2011-08-08
asp.net mvc-Controllerl篇 ControllerDescriptor 2012-11-11
较为全面的Asp.net提交验证方案分析 (上)以前在学习Asp.net时备受困扰的就是提交验证这块,网上流行的关于图片验证的教程大都存在很多问题 2008-10-10
基于Jexus-5.6.3使用详解下面小编就为大家分享一篇基于Jexus-5.6.3使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 2018-02-02
.net获取本机公网IP地址示例本文主要介绍了.net获取本机公网IP地址的方法,使用了ip138的数据,大家参考使用吧 2014-01-01

最新评论

声明:本站(华域联盟www.cnhackhy.com)所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。