.NetCore 目录浏览 和 静态文件
1. 静态文件
包:microsoft.aspdotnet.staticfiles
app.UseStaticFiles() 会默认找到 wwwroot文件夹
// 匹配到指定条件然后执行中间件 // 使用中间件 // 静态文件 // UseStaticFiles 中间件 app.UseStaticFiles(); // 使用默认文件 去找到 wwwroot 文件夹 // 自定义静态文件路径 var otherDirectory = Path.Combine(Directory.GetCurrentDirectory(), "otherFiles"); app.UseStaticFiles(new StaticFileOptions() { // 物理地址 FileProvider = new PhysicalFileProvider(otherDirectory), // 指定访问地址 IP/other/test/index.html RequestPath = new PathString(("/other")) });
2. 目录浏览
// 目录浏览 允许网站用户查看指定目录下的目录和文件列表
// 基于安全考虑,默认情况下禁用目录访问功能
// 开启目录浏览功能 当访问 files 的时候 会把otherFiles目录列出来 app.UseDirectoryBrowser(new DirectoryBrowserOptions() { // 文件提供程序 FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "otherFiles")), /// 指定请求地址 RequestPath = new PathString("/files") });
3. 默认文件
设置默认页给站点每个访问者提供一个起始页,避免用户输入完整的ULR
在 startup.Configure中调用 UseDefaultFiles() 扩展方法
UseDefaultFiles 必须在 UseStaticFiles() 之前使用
UseDefaultFIles 只是重写了URL 不是真的提供了这样的一个文件
因此还必须开启静态文件中间件, UseStatusFIles 来提供这个文件
通过UseDeaultFiles 请求文件夹的时候检索一下文件:default.html index.html
列表中第一个被找到的文件将返回给用户,作为该完整的ULR请求的响应,而此时的浏览器的URL将继续显示用户输入的URL
自定义默认页名称
初始化默认页设置选项
var option = enw DefaultFIlesOption();
清空默认文件名列表
options.DefaultFileNames.Clear();
向默认页列表中添加自定义的文件名
options.DefaultFileNames.Add("asdfd.html");
应用默认文件设置
app.UseDefaultFiles(options);
启用静态文件
app.UseStaticFiles();
是否将html文件解析 默认是解析的 如何设置不解析 直接打印出内容
var provider = new FileExtensionContentTypeProvider();
provider.Mappings.Clear();
provider.Mappings[".html"] = "text/plain"; // 正常文件的形式打印出来
provider.Mappings[".abc"] = "text/html"; // 遇到 abc 文件以 html 格式文件输出