流浪のwolf

卷帝

导航

.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 格式文件输出

 

posted on 2024-03-31 14:29  流浪のwolf  阅读(72)  评论(0编辑  收藏  举报