OWIN 的 app.usestaticfiles 和 app.usefileserver 有啥区别

Posted

技术标签:

【中文标题】OWIN 的 app.usestaticfiles 和 app.usefileserver 有啥区别【英文标题】:What is the difference between app.usestaticfiles & app.usefileserver for OWINOWIN 的 app.usestaticfiles 和 app.usefileserver 有什么区别 【发布时间】:2019-03-16 14:25:14 【问题描述】:

我想知道OWIN的这两个代码块有什么区别。

在我看来,他们在做同样的工作。

1.

 string root = AppDomain.CurrentDomain.BaseDirectory;
            var physicalFileSystem = new PhysicalFileSystem(Path.Combine(root, "wwwroot"));
            var options = new FileServerOptions
            
                RequestPath = PathString.Empty,
                EnableDefaultFiles = true,
                FileSystem = physicalFileSystem
            ;
            options.StaticFileOptions.FileSystem = physicalFileSystem;
            options.StaticFileOptions.ServeUnknownFileTypes = false;

            app.UseFileServer(options);

2.

    app.UseStaticFiles("wwwroot");

【问题讨论】:

【参考方案1】:

IAppBuilder.UseFileserver 结合了UseStaticFiles UseDefaultFiles,但默认不结合UseDirectorybrowser

这意味着:

app.UseFileServer(enableDirectoryBrowsing: true); 

启用以上所有功能,而

app.UseFileServer();

仅启用静态文件和默认文件,但不启用目录浏览。 反过来说,IAppBuilder.UseStaticFiles 只允许网络服务器提供静态文件,但不对默认文档或目录浏览做任何假设。

【讨论】:

以上是关于OWIN 的 app.usestaticfiles 和 app.usefileserver 有啥区别的主要内容,如果未能解决你的问题,请参考以下文章

重新整理 .net core 实践篇—————静态中间件[二十一]

[五] ASP.NET Core中的静态文件

Blazor WASM 路由发布请求到 index.html

.Net5004命令和配置参数读取

.Net5004命令和配置参数读取

如何在 dotnet core web api 中设置起始页?