共计 824 个字符,预计需要花费 3 分钟才能阅读完成。
.NET Core 静态文件服务深度实践
环境搭建与基础配置
项目创建 使用 VS2017 新建 ASP.NET Core 空项目,通过 Program.cs
配置 WebHost:
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseUrls("http://*:5000")
核心功能实现
基础文件服务 在Startup.cs
中通过 app.UseStaticFiles()
启用 wwwroot 目录访问,默认仅暴露该文件夹内容。
进阶配置方案
自定义文件目录 通过 PhysicalFileProvider
指定 C 盘路径,配合 StaticFileOptions
实现:
var staticfile = new StaticFileOptions {
FileProvider = new PhysicalFileProvider(@"C:\")
};
MIME 类型处理 双保险策略解决文件识别问题:
1. 设置ServeUnknownFileTypes=true
2. 配置 FileExtensionContentTypeProvider
映射.log 等扩展名
provider.Mappings.Add(".log", "text/plain");
目录浏览功能
通过服务注入实现可视化文件管理:
1. ConfigureServices
注册目录服务
services.AddDirectoryBrowser();
2. 配置目录浏览器中间件
app.UseDirectoryBrowser(new DirectoryBrowserOptions {
FileProvider = new PhysicalFileProvider(@"C:\")
});
异常处理机制
设置默认 application/x-msdownload
类型处理未知文件,确保所有文件类型可访问。通过响应式编程处理请求管道,保留基础路由响应功能。