目录

本文出自《从零开始学 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 文件进行分类,我们建议将不同的文件类型进行文件夹区分,参考下图文件夹层次结构 :

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和UseStaticFilesFileServerOptions fileServerOptions = new FileServerOptions();fileServerOptions.DefaultFilesOptions.DefaultFileNames.Clear();fileServerOptions.DefaultFilesOptions.DefaultFileNames.Add(“52abp.html”);app.UseFileServer(fileServerOptions);

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

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

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

中间件 选项对象
UseDeveloperExceptionPage DeveloperExceptionPageOptions
UseDefaultFiles DefaultFilesOptions
UseStaticFiles StaticFileOptions
UseFileServer FileServerOptions

小结

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

声明专区

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

未得到授权不得擅自转载本文内容,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 
免费的更新慢,收费的更新快,仅此而已。就这样。

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

Asp.Net Core中的静态文件-12相关推荐

  1. ASP.NET Core 中的静态文件

    1.前言 当我们创建Core项目的时候,Web根目录下会有个wwwroot文件目录,wwwroot文件目录里面默认有HTML.CSS.IMG.JavaScript等文件,而这些文件都是Core提供给客 ...

  2. ASP.NET Core 中的 wwwroot 文件夹

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

  3. ASP.NET Core应用针对静态文件请求的处理[1]: 以Web的形式发布静态文件

    虽然ASP.NET Core是一款"动态"的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件.CSS样式文件和图片文件 ...

  4. ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面...

    DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容.我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会 ...

  5. Asp.NET Core 加载静态文件404

    找了好多天的前端模板,终于心心念念的引入了自己的程序,正满心欢喜的运行起来的时候,竟然只有进入默认是首页的时候 css,js,img成功引入. 而当我发起任意一个请求的时候,哪怕是在用URL,页面的样 ...

  6. [小技巧]ASP.NET Core中如何预压缩静态文件

    原文地址:Pre-compressed static files with ASP.NET Core 作者:Gunnar Peipman 译者:Lamond Lu 译文:https://www.cnb ...

  7. ASP.NET Core 中文文档 第三章 原理(3)静态文件处理

    原文:Working with Static Files 作者:Rick Anderson 翻译:刘怡(AlexLEWIS) 校对:谢炀(kiler398).许登洋(Seay).孟帅洋(书缘) 静态文 ...

  8. 在ASP.NET Core中使用EPPlus导入出Excel文件

    这篇文章说明了如何使用EPPlus在ASP.NET Core中导入和导出.xls/.xlsx文件(Excel).在考虑使用.NET处理excel时,我们总是寻找第三方库或组件.使用Open Offic ...

  9. 在TypeScript和ASP.NET Core中处理文件上传和受保护的下载

    目录 介绍 背景 使用代码 注册您的API main.ts api-plugin.d.ts 上传文件 提交文件 API服务方法 ASP.NET Core API方法 下载文件 客户端API下载 保护上 ...

最新文章

  1. 假如易立竞吐槽程序员......
  2. layui table 弹出层刷新_layui 关闭open弹出框 刷新table表格页面的方法
  3. 头脑风暴是如何毁掉创意的?
  4. Mysql中代替like模糊查询的一种方法
  5. vb对数据库操作用存储过程
  6. 请教各位 android activity之间切换的问题
  7. mysql innodb 并发 插入 慢_InnoDB并发插入,居然使用意向锁?
  8. Svcutil.exe详解
  9. linux 如何判断当前用户
  10. 利用sender的Parent获取GridView中的当前行
  11. 台式电脑计算机怎么添加任务栏,win10系统任务栏添加计算机快捷图标的详细技巧...
  12. 蓝桥杯 java 组素数_第四届蓝桥杯javaC组_组素数
  13. Vue-计算属性与事件监听
  14. 关于动作捕捉动画一些记录
  15. ffmpeg h264 视频编码 模糊问题、MP4播放速度快问题
  16. 自由运动物体的运动代码
  17. android 各个手机型号的功放和听筒模式的研究
  18. 祝老婆生日快乐(无内容)
  19. netstat -i和-s
  20. 电脑硬盘中文件丢失怎样才能找回?硬盘数据丢失能恢复吗

热门文章

  1. 南京铁道学院计算机应用,南京铁道职业技术学院交通运营管理专业怎么样
  2. OPC Client “failed to execute OPCENUM” 解决方法
  3. 12C RAC for ASM添加磁盘步骤
  4. MySQL5.5多实例编译安装——mysqld_multi
  5. onmouseover-onmouseout
  6. cookies,sessionStorage 和 localStorage 的区别?
  7. hadoop扩充磁盘操作记录
  8. 复制Oracle表的结构
  9. 正确使用和理解C#中的闭包
  10. 在 .NET 应用中使用 ANTLR