ASP.NETCore文件系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ASP.NET C
文件系统
时间:2019.03.01
re
01 / 静态文件
目录
CONTENTS
02 / 目录浏览 03 / 默认文件 04 / 文件系统
PART ONE
1
静态文件
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
我们可以通过注册另一个名为 DirectoryBrowserMiddleware 的中间件来 显示请求目录的内容。
如果我们向某个目录的URL发送HTTP请求,
得到的将是一个状态为404的响应。
点击添加相关标题文字 目录浏览
SDIRECTORY A TA DT DC R FE I LLEA ST BROWSING ED TITLE WORDS
目录浏览中间件
USE STATC FILES MIDDLEWARE
注册目录浏览中间件
通过使用 UseDirectoryBrowser() 来注册目录浏览中间件,
来显示请求目录的内容,
这个中间件会返回一个HTML页面,将请求目录下的所有文 件将以表格的形式包含在这个页面中。
注册指定目录的浏览
UseDirectoryBrowser() 方法可接受一个配置项对象 DirectoryBrowserOptions ,该类型与静态文件中间件配置项相似
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
文件服务中间件
FILE SERVER MIDDLEWARE
使用UseFileServer方法
UseFileServer方法集合了 UseStaticFiles、UseDefaultFiles 以及UseDirectoryBrowser三个方法的功能于一身 。
使用FileServerOptions配置
如果希望提供 web 根目录之外存在的文件, 则需要实例化并配置一个 FileServerOptions 对象 传递给app.UseFileServer 方法参数。
PART THREE
4
文件系统
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
非标准的内容类型
ASP.NET Core 静态文件中间件能够支持超过400多种己知 的文件内容类型。如果用户请求一个未知的文件类型, 静态文件中间件将返 HTTP404(未找到)响应。
通过设置 StaticFileOptions 对象的 DefaultContentType
属性值可以为不能识别的内容类型指定一个类型来处理。
点击添加相关标题文字 静态文件
SA ta DtD ic R FE i lLeA sT E D T I T L E W O R D S
如果我们需要发布的静态文件存储在其他目录下呢?
上面我们通过一个简单的实例将 WebRoot所在目录下的所有 静态文件直接发布出来。如果我们需要发布的静态文件存储在 其他目录下呢?
ADD RELAT DIRECTORY BROWSING ED TITLE WORDS
目录浏览
目录浏览允许网站用户看到指定目录下的 目录和文件列表。 基于安全考虑,默认情况下是禁用目录访 问功能的。
静态文件
目录浏览中间件
注册的 StaticFileMiddleware 中间件,只会 处理针对某个具体静态文件的请求。
默认文件中间件
DEFAULT FILES MIDDLEWARE
注册默认文件中间件
通过使用 UseDefaultFiles() 来注册默认文件中间件, 在默认文件列表中第一个被找到的文件将返回给用户, 作为该完整URL的请求的应答,而此时浏 览器上URL将继续显示用户输入的URI。
指定默认文件
UseDefaultFiles() 方法可接受一个配置项对象的参数 DefaultFilesOptions,通过添加默认主页名称, 可以指定自定义的默认文件(默认首页)
如果调用 UseStaticFiles方法没有指定任何的参数,
那么这个映射关系的请求路径就是应用的基地址 而FileProvider自然就是指向WebRoot目录的PhysicalFileProvider。 前边所述的需求可以通过显式注册这个映射的方式来实现。
PART TWO
2
目录浏览
点击添加相关标题文字 目录浏览
静态文件
指像 HTML、CSS、图片 和 JavaScript 之类固定的文件, 是会被应用程序直接提供给 客户端的资源
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
ContentRoot
内容根目录是应用程序所用到的所有内容 的根路径。 在 WebHost.CreateDefaultBuilder() 默认将当前项目的根目录作为 Content Root目录。
文件系统-简单文件服务器
能通过客户端浏览服务器E盘的所有文件及文件夹。
给未识别的 MIME 类型设置一个默认值("application/xmsdownload"),当浏览器打开这些未识别类型的文件, 就会下载这些文件。 .log 这样的文件设置为文本方式,浏览器会直接展示出来。 这样我们也就实现了一个简单的文件服务器。
默认文件
DEFAULT FILES
通过 UseDefaultFiles,请求文件夹的时候将检索以下文件
default.htm
default.html
index.htm
index.html
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
通过请求获取文件
程序运行之后,通过对应URL发送HTTP请求来获取静态文件。 这个URL由文件相对于 wwwroot 目录的路径来决定。 比如 bg.png 文件“~/wwwroot/images/bg.jpg” 对应的请求URL为“http://localhost:5000/images/bg.jpg” 我们直接利用浏览器访问这个URL,目标图片会直接显示出来。
点击添加相关标题文字 静态文件
ADD RELATED TITLE WORDS
StaticFileOptions 对象其他属性
FileExtensionContentTypeProvider 类
StaticFileOptions 对象的 ContentTypeProvider 属性值可以 设置一个 FileExtensionContentTypeProvider类型对象, FileExtensionContentTypeProvider 类内包含将 文件扩展名映射到 MIME内容类型的集合。
PART THREE
3
默认文件
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
默认文件
DEFAULT FILES
设置默认首页能给站点的每个访问者提供一个默认起始页。 为了使站点能够提供默认页面,避免用户输入完整URL。
注册默认文件中间件
使用静态文件中间件
USE STATC FILES MIDDLEWARE
注册静态文件中间件
ASP.NET Core 应用程序对静态文件请求的处理是通过一个
wk.baidu.com
名为 StaticFileMiddleware 的中间件来实现的。
StaticFileMiddleware 这个中间件的注册是通过调用 IApplicationBuilder 的扩展方法 UseStaticFiles 来完成的。
谢谢您的观看
时间:2019.03.01
WebRoot
Web根目录是项目中用于存放类似于 CSS、 JS和图片等公开、静态资源的目录。 静态文件中间件将默认只读取Web根目录 和其子目录中的文件。Web根目录默认为 {content root}/wwwroot
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
依旧是演示的这个应用,现在我们将一些存储在如右图所示的 “~/Files/”目录下并以Web的形式发布出来,我们的程序又
该如何编写呢?
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
为实现上述的需求我们可以通过在现有程序的基础 上额外添加了一次针对 UseStaticFiles 方法的调用, 并通过指定的参数(StaticFileOptions对象)来配 置静态文件的提供。
USEDEFAULTFILES MIDDLEWARE
app.UseDefaultFiles 必须是在 UseStaticFiles 之前调用。 UseDefaultFiles只是重写了URL,而不是真的提供了这样一个文件。因 此必须开启静态文件中间件(UseStaticFiles) 来提供这个文件。
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
使用静态文件中间件
USE STATC FILES MIDDLEWARE
使用 StaticFileOptions 来初始化静态文件中间件
ASP.NET Core 一般情况下都是利用一个FileProvider 对象 来读取文件的,它在处理针对静态文件的请求是也不例外。 在调用静态文件中间件的方法 UseStaticFiles(), 该方法可接受一个配置项对象 StaticFileOptions, 其内部具有一个 FileProvider 和请求路径的映射关系。
文件系统
时间:2019.03.01
re
01 / 静态文件
目录
CONTENTS
02 / 目录浏览 03 / 默认文件 04 / 文件系统
PART ONE
1
静态文件
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
我们可以通过注册另一个名为 DirectoryBrowserMiddleware 的中间件来 显示请求目录的内容。
如果我们向某个目录的URL发送HTTP请求,
得到的将是一个状态为404的响应。
点击添加相关标题文字 目录浏览
SDIRECTORY A TA DT DC R FE I LLEA ST BROWSING ED TITLE WORDS
目录浏览中间件
USE STATC FILES MIDDLEWARE
注册目录浏览中间件
通过使用 UseDirectoryBrowser() 来注册目录浏览中间件,
来显示请求目录的内容,
这个中间件会返回一个HTML页面,将请求目录下的所有文 件将以表格的形式包含在这个页面中。
注册指定目录的浏览
UseDirectoryBrowser() 方法可接受一个配置项对象 DirectoryBrowserOptions ,该类型与静态文件中间件配置项相似
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
文件服务中间件
FILE SERVER MIDDLEWARE
使用UseFileServer方法
UseFileServer方法集合了 UseStaticFiles、UseDefaultFiles 以及UseDirectoryBrowser三个方法的功能于一身 。
使用FileServerOptions配置
如果希望提供 web 根目录之外存在的文件, 则需要实例化并配置一个 FileServerOptions 对象 传递给app.UseFileServer 方法参数。
PART THREE
4
文件系统
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
非标准的内容类型
ASP.NET Core 静态文件中间件能够支持超过400多种己知 的文件内容类型。如果用户请求一个未知的文件类型, 静态文件中间件将返 HTTP404(未找到)响应。
通过设置 StaticFileOptions 对象的 DefaultContentType
属性值可以为不能识别的内容类型指定一个类型来处理。
点击添加相关标题文字 静态文件
SA ta DtD ic R FE i lLeA sT E D T I T L E W O R D S
如果我们需要发布的静态文件存储在其他目录下呢?
上面我们通过一个简单的实例将 WebRoot所在目录下的所有 静态文件直接发布出来。如果我们需要发布的静态文件存储在 其他目录下呢?
ADD RELAT DIRECTORY BROWSING ED TITLE WORDS
目录浏览
目录浏览允许网站用户看到指定目录下的 目录和文件列表。 基于安全考虑,默认情况下是禁用目录访 问功能的。
静态文件
目录浏览中间件
注册的 StaticFileMiddleware 中间件,只会 处理针对某个具体静态文件的请求。
默认文件中间件
DEFAULT FILES MIDDLEWARE
注册默认文件中间件
通过使用 UseDefaultFiles() 来注册默认文件中间件, 在默认文件列表中第一个被找到的文件将返回给用户, 作为该完整URL的请求的应答,而此时浏 览器上URL将继续显示用户输入的URI。
指定默认文件
UseDefaultFiles() 方法可接受一个配置项对象的参数 DefaultFilesOptions,通过添加默认主页名称, 可以指定自定义的默认文件(默认首页)
如果调用 UseStaticFiles方法没有指定任何的参数,
那么这个映射关系的请求路径就是应用的基地址 而FileProvider自然就是指向WebRoot目录的PhysicalFileProvider。 前边所述的需求可以通过显式注册这个映射的方式来实现。
PART TWO
2
目录浏览
点击添加相关标题文字 目录浏览
静态文件
指像 HTML、CSS、图片 和 JavaScript 之类固定的文件, 是会被应用程序直接提供给 客户端的资源
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
ContentRoot
内容根目录是应用程序所用到的所有内容 的根路径。 在 WebHost.CreateDefaultBuilder() 默认将当前项目的根目录作为 Content Root目录。
文件系统-简单文件服务器
能通过客户端浏览服务器E盘的所有文件及文件夹。
给未识别的 MIME 类型设置一个默认值("application/xmsdownload"),当浏览器打开这些未识别类型的文件, 就会下载这些文件。 .log 这样的文件设置为文本方式,浏览器会直接展示出来。 这样我们也就实现了一个简单的文件服务器。
默认文件
DEFAULT FILES
通过 UseDefaultFiles,请求文件夹的时候将检索以下文件
default.htm
default.html
index.htm
index.html
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
通过请求获取文件
程序运行之后,通过对应URL发送HTTP请求来获取静态文件。 这个URL由文件相对于 wwwroot 目录的路径来决定。 比如 bg.png 文件“~/wwwroot/images/bg.jpg” 对应的请求URL为“http://localhost:5000/images/bg.jpg” 我们直接利用浏览器访问这个URL,目标图片会直接显示出来。
点击添加相关标题文字 静态文件
ADD RELATED TITLE WORDS
StaticFileOptions 对象其他属性
FileExtensionContentTypeProvider 类
StaticFileOptions 对象的 ContentTypeProvider 属性值可以 设置一个 FileExtensionContentTypeProvider类型对象, FileExtensionContentTypeProvider 类内包含将 文件扩展名映射到 MIME内容类型的集合。
PART THREE
3
默认文件
点击添加相关标题文字 默认文件
DEFAULT A D D R EFILES LATED TITLE WORDS
默认文件
DEFAULT FILES
设置默认首页能给站点的每个访问者提供一个默认起始页。 为了使站点能够提供默认页面,避免用户输入完整URL。
注册默认文件中间件
使用静态文件中间件
USE STATC FILES MIDDLEWARE
注册静态文件中间件
ASP.NET Core 应用程序对静态文件请求的处理是通过一个
wk.baidu.com
名为 StaticFileMiddleware 的中间件来实现的。
StaticFileMiddleware 这个中间件的注册是通过调用 IApplicationBuilder 的扩展方法 UseStaticFiles 来完成的。
谢谢您的观看
时间:2019.03.01
WebRoot
Web根目录是项目中用于存放类似于 CSS、 JS和图片等公开、静态资源的目录。 静态文件中间件将默认只读取Web根目录 和其子目录中的文件。Web根目录默认为 {content root}/wwwroot
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
依旧是演示的这个应用,现在我们将一些存储在如右图所示的 “~/Files/”目录下并以Web的形式发布出来,我们的程序又
该如何编写呢?
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
为实现上述的需求我们可以通过在现有程序的基础 上额外添加了一次针对 UseStaticFiles 方法的调用, 并通过指定的参数(StaticFileOptions对象)来配 置静态文件的提供。
USEDEFAULTFILES MIDDLEWARE
app.UseDefaultFiles 必须是在 UseStaticFiles 之前调用。 UseDefaultFiles只是重写了URL,而不是真的提供了这样一个文件。因 此必须开启静态文件中间件(UseStaticFiles) 来提供这个文件。
点击添加相关标题文字 静态文件
SA TA DT DC R FE I LLEA ST E D T I T L E W O R D S
使用静态文件中间件
USE STATC FILES MIDDLEWARE
使用 StaticFileOptions 来初始化静态文件中间件
ASP.NET Core 一般情况下都是利用一个FileProvider 对象 来读取文件的,它在处理针对静态文件的请求是也不例外。 在调用静态文件中间件的方法 UseStaticFiles(), 该方法可接受一个配置项对象 StaticFileOptions, 其内部具有一个 FileProvider 和请求路径的映射关系。