Asp.Net Core中的静态文件-12

640?wx_fmt=gif

目录

本文出自《从零开始学 ASP.NET CORE MVC》目录 
推荐文章:配置 ASP.NET Core 请求(Request)处理管道

Asp.Net Core 中的静态文件

在这个视频中我们将讨论如何使 ASP.NET Core 应用程序,支持静态文件,如 HTML,图像,CSS 和 JavaScript 文件。

静态文件

  • 默认情况下,Asp.Net Core 应用程序不会提供静态文件。

  • 静态文件的默认目录是wwwroot,此目录必须位于项目文件夹的根目录中。

将图片复制并粘贴到 wwwroot 文件夹中。我们假设文件的名称是 banner.jpg。为了能够从浏览器访问此文件,路径为:http://{{serverName}}/banner.jpg在我们的示例中,我们在本地计算机上运行, 因此 URL 将如下所示。您的计算机上的端口号可能不同。http://localhost:3290/banner.jpg

从我的电脑,然后导航到上面的 Url 的时候,
我们仍然是通过Run()方法的中间件,返回响应的结果,。我没有看到图片banner.jpg
这是因为,目前我们的应用程序请求处理管道,没有可以提供静态文件的所需中间件。我们需要使用的中间件UseStaticFiles()

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

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//添加静态文件中间件
app.UseStaticFiles();

app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}

wwwroot文件夹中没有像 vs 提供的默认模板一样把图片、CSS 和 JavaScript 文件进行分类,我们建议将不同的文件类型进行文件夹区分,参考下图文件夹层次结构 :

640?wx_fmt=other

image.png


为了能够从浏览器访问image1.jpg我们输入地址为 http://localhost:49119/images/image1.jpg 得到结果。

提供 wwwroot 文件夹之外的静态文件

默认情况下,UseStaticFiles()中间件仅提供 wwwroot 文件夹中的静态文件。如果您愿意,我们还可以在wwwroot文件夹之外提供静态文件。

提供默认文档

大多数 Web 程序都有一个默认文档,它是用户访问程序地址时显示的文档内容。例如,您有一个名为default.html的文件,并且您希望在用户访问应用程序的根 URL 时提供它,即http://localhost:3290

此时,我们来访问这个地址看看,我看到我使用Run()方法注册的中间件产生的回调。但是我没有看到默认文档default.html的内容。为了能够提供默认页面,我们必须在应用程序的请求处理管道中插入UseDefaultFiles()中间件

//添加默认文件中间件
app.UseDefaultFiles();
//添加静态文件中间件
app.UseStaticFiles();

请注意:必须在UseStaticFiles之前,注册UseDefaultFiles来提供默认文件。UseDefaultFiles是一个 URL 重写器,实际上并没有提供文件。它只是将URL重写定位到默认文档,然后还是由静态文件中间件提供。地址栏中显示的 URL 仍然是根节点的 URL,而不是重写的 URL。

以下是UseDefaultFiles中间件默认会去查找的地址信息

- index.htm 的默认文件
- index.html
- default.htm
- default.html

如果要使用其他文档,如 52abp.html 例如,作为您的默认文档,您可以使用以下代码执行此操作。

//将52abp.html指定为默认文档
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add(“52abp.html”);
//添加默认文件中间件
app.UseDefaultFiles(defaultFilesOptions);
//添加静态文件中间件
app.UseStaticFiles();

UseFileServer 中间件

UseFileServer结合了UseStaticFiles,UseDefaultFiles和UseDirectoryBrowser中间件的功能。DirectoryBrowser中间件,支持目录浏览,并允许用户查看指定目录中的文件。
我们可以用UseFileServer 中间件替换UseStaticFiles 和 UseDefaultFiles中间件。

/使用UseFileServer而不是UseDefaultFiles和UseStaticFiles
FileServerOptions fileServerOptions = new FileServerOptions();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Clear();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Add(“52abp.html”);
app.UseFileServer(fileServerOptions);

这里要注意的知识点:是我们应该使用添加中间件的方式,添加到应用程序的请求处理管道的方法。
在大多数情况下,我们使用以 USE 开头的扩展方法添加中间件。例如:

UseDeveloperExceptionPage()
UseDefaultFiles()
UseStaticFiles()
UseFileServer()

如果要自定义这些中间件组件,他有对应的可配置选项卡。参考下表:

中间件选项对象
UseDeveloperExceptionPageDeveloperExceptionPageOptions
UseDefaultFilesDefaultFilesOptions
UseStaticFilesStaticFileOptions
UseFileServerFileServerOptions

小结

我希望这篇文章可以帮助您满足您的需求。我想收到你的反馈意见。请发布您对本文的反馈,问题或意见。


声明专区



如果您觉得我的文章质量还不错,欢迎打赏,也可以订阅我的视频哦

未得到授权不得擅自转载本文内容,52abp.com保留版权

文字版目录:https://www.52abp.com/Wiki/mvc/latest/1.Intro 

交流QQ群:952387474《微软MVP带你学ASP.NET CORE》

【收费】腾讯课堂: https://ke.qq.com/course/392589?tuin=2522cdf3 
【免费】youtube视频专区:http://t.cn/Ei0F2EB 
免费的更新慢,收费的更新快,仅此而已。就这样。
 

640?wx_fmt=jpeg

640?wx_fmt=jpeg

「好看」的人都【在看】↓↓↓





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/316240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018 ICPC Asia Jakarta Regional Contest

2018 ICPC Asia Jakarta Regional Contest 题号题目知识点难度AEdit DistanceBRotating GearCSmart ThiefDIcy LandEArtilleries and Defensive WallsFPopping BalloonsGGo Make It CompleteHLexical Sign SequenceILie DetectorJFuture GenerationKBoomerangsLBinary String

在.net core 中PetaPoco结合EntityFrameworkCore使用codefirst方法进行开发

在.net core开发过程中,使用最多的就是注入方法。但是在.net core使用PetaPoco时,PetaPoco还不支持进行注入方式进行处理一些问题。今天对PetaPoco进行了一些扩展,可以很方便的将PetaPoco进行注入操作,使用和EF很相似,…

F-Pairwise Modulo

d数组是来算(x整除y)*y中y比x小的数 s数组是算(x整除y)*y中y比x大的数 (x整除y)*y 看x对于前面大于他的数是枚举,对于前面小于他的数是d树状数组储存。 d中 x整除y表示x中有多少个y 所以 …

2020 ICPC NAC

2020 ICPC NAC 题号题目知识点难度AAnother Coin Weighing PuzzleBMini BattleshipCBomasDAll KillEGrid GuardianFHopscotch 50GICPC CampHLetter WheelsIEditing ExplosionJLunchtime Name RecallKRooted SubtreesLTomb Raider

【微服务学习】Polly:熔断降级组件

何为熔断降级“熔断器如同电力过载保护器。它可以实现快速失败,如果它在一段时间内侦测到许多类似的错误,会强迫其以后的多个调用快速失败,不再访问远程服务器,从而防止应用程序不断地尝试执行可能会失败的操作,使得应…

A - Junk-Mail Filter HDU - 2473

只是这样合并&#xff0c;分割点的时候就不能分了。 这样合并再加上虚拟节点&#xff0c;那么每个你要求的节点就的下面就不连其他节点了&#xff0c;这样就可以进行删除操作了 #include<iostream> #include<algorithm> #include<cstdio> #include<cstr…

为什么不要使用 async void

问题在使用 Abp 框架的后台作业时&#xff0c;当后台作业抛出异常&#xff0c;会导致整个程序崩溃。在 Abp 框架的底层执行后台作业的时候&#xff0c;有 try/catch 语句块用来捕获后台任务执行时的异常&#xff0c;但是在这里没有生效。原始代码如下&#xff1a;public class …

2018-2019 ICPC Northwestern European Regional Programming Contest (NWERC 2018)

2018-2019 ICPC Northwestern European Regional Programming Contest (NWERC 2018) 题号题目知识点难度AAccess PointsBBrexit NegotiationsCCircuit Board DesignDDate PickupEEquality ControlFFastest SpeedrunGGame DesignHHard DriveIInflationJJinxed BettingKKleptogr…

LCA。。。

树链剖分 #include<cstdio> #include<iostream> #include<cstring> using namespace std; const int N5e510;int h[N],e[2*N],ne[2*N],idx0; void add(int u,int v){e[idx]v,ne[idx]h[u],h[u]idx;return;}int siz[N],de[N],son[N],top[N],fa[N],id[N],num; …

张队长主讲这堂 .NET Core技术培训公开课,太原你约不约

这堂.NET Core技术培训课&#xff0c;你不能错过各位开发者朋友们想必也能体会到&#xff0c;现在市面上关于.NET Core的培训课程少之又少&#xff0c;其中有质量有内容的课程更是凤毛麟角&#xff0c;良师难遇&#xff0c;一课难求。但是现在&#xff0c;机会来了。中微云孵邀…

L :WeChat Walk

详见代码 #include<cstdio> #include<iostream> #include<cstring> #include<vector> #include<map> #include<algorithm> #include<cmath> using namespace std; typedef long long ll; const int N2e510;int h[N],e[N<<1],…

微软推出新语言Bosque,超越结构化程序设计

微软近期推出了一款全新的编程语言 Bosque&#xff0c;该语言参考了 TypeScript 的语法与类型&#xff0c;还有 ML 和 Node/JavaScript 的语义。作者微软计算机科学家 Mark Marron 致力于消除编程过程中出现的各种复杂情况&#xff0c;创造出了他认为超越主流结构化程序设计的 …

Acwing202. 最幸运的数字

Acwing202. 最幸运的数字 题意&#xff1a; 现在给定一个正整数 L&#xff0c;请问至少多少个 8 连在一起组成的正整数&#xff08;即最小幸运数字&#xff09;是 L 的倍数。 题解&#xff1a; x个8连在一起组成的正整数可写作8(10x−1)/98(10^x-1)/98(10x−1)/9。现在要求…

Black and white

在1-n&#xff0c;1-m里选nm-1个边&#xff0c;不形成环的话那就可以补全图形。。。还是不懂 #include<iostream> #include<cstring> using namespace std; const int N6000; typedef long long ll; int l[N],r[N],A[N*N]; int ma[N][N],dis[NN]; int n,m,a,b,c,…

Sumdiv POJ - 1845

Sumdiv POJ - 1845 题意&#xff1a; 求ABA^BAB的所有约数之和mod 9901(1<A,B<5e7) 题解&#xff1a; 我们先将A分解质因子&#xff0c;表示为&#xff1a;p1c1∗p2c2∗......∗pncnp_{1}^{c_{1}}*p_{2}^{c_{2}}*......*p_{n}^{c_{n}}p1c1​​∗p2c2​​∗......∗pn…

vue 实验报告8 基于Nuxt.js开发一个Vue程序,实现登录和注册切换

一、步骤&#xff1a; 保证node.js版本在14以上 1. 全局安装create-nuxt-app: npm install -g create-nuxt-app2.9.x 2. 创建项目: create-nuxt-app my-nuxt-demo 选项这么选&#xff1a; 然后输入&#xff1a; cd my-nuxt-demo 3. 创建登录和注册页面: 在/pages目录下创建logi…

解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法

以下方法来自于微软github开源项目WinForms:dotnet/winforms - Using the Classic WinForms Designer in WinForms Core, 请放心使用 .目前.net core下的 Windows Forms的可视化设计器(Designer)尚不可用&#xff0c;后续的Visual Studio 2019 Update才会支持该部分的功能。不过…

P2480 [SDOI2010]古代猪文(数论好题)

P2480 [SDOI2010]古代猪文 题意&#xff1a; 给你n和g&#xff0c;求g∑d∣nCndmodpg^{\sum_{d|n}C_{n}^{d}}\bmod pg∑d∣n​Cnd​modp p999911659 题解&#xff1a; 这个一个综合性很强的数论题 涉及到欧拉定理&#xff0c;Lucas定理&#xff0c;中国剩余定理&#xff0c…

ASP.NET Core开发者成长路线图

来源: MoienTajik/AspNetCore-Developer-Roadmap.2019年ASP.NET Core开发者指南:你可以在下面找到一张图&#xff0c;该图展示了你可以选取的路径及你想学习的库&#xff0c;从而成为一名 ASP.NET Core 开发者。“作为 ASP.NET Core 开发者&#xff0c;我接下来应该学习什么&am…

P2183 [国家集训队]礼物(扩展卢卡斯)

P2183 [国家集训队]礼物 题意&#xff1a; 有n个礼物&#xff0c;分给m个人&#xff0c;分给第i个人的礼物数量是wi&#xff0c;问送礼物的方案数。 题解&#xff1a; 扩展卢卡斯模板题 很容易看出和组合数有关的题目&#xff0c;对于总方案&#xff0c;完美可以将其分解为…