【发布时间】:2016-06-15 01:54:07
【问题描述】:
我浏览了为Use Static Files 为 ASP.NET 核心应用程序提供的文档。从Serving a default document和Using the UseFileServer method部分阅读信息后,我的脑海中分别打开了以下两个问题:
如果新的默认文件在 wwwroot 之外,我该如何添加它
如何使用 UseFileServer 扩展方法添加甚至位于 www 下的新默认文件
【问题讨论】:
我浏览了为Use Static Files 为 ASP.NET 核心应用程序提供的文档。从Serving a default document和Using the UseFileServer method部分阅读信息后,我的脑海中分别打开了以下两个问题:
如果新的默认文件在 wwwroot 之外,我该如何添加它
如何使用 UseFileServer 扩展方法添加甚至位于 www 下的新默认文件
【问题讨论】:
在您的 Startup.Configure 方法中,您可以配置默认文件:
DefaultFilesOptions options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("myDefault.html"); // this had no influence :-(
app.UseDefaultFiles(options);
如果我定义以下选项,我可以通过/StaticFiles 加载默认的index.html,但不能加载我自定义的myDefault.html,这可能是你想要的。
app.UseFileServer(new FileServerOptions()
{
FileProvider = new PhysicalFileProvider(@"C:\temp\"),
RequestPath = new PathString("/StaticFiles"),
EnableDefaultFiles = true,
EnableDirectoryBrowsing = false
});
UseDefaultFiles 似乎没有任何影响。但是,如果您在 Web 服务器中配置默认文件,它仍然可以工作。
FileServerOptions 有一个属性DefaultFiles,但它是只读的。
【讨论】:
app.UseFileServer扩展方法实现从wwwroot添加新的默认文件。