问题 是否可以从wwwroot文件夹外部提供静态文件?


我有一个ASP.NET MVC 6项目,具有以下结构:

project/
  wwwroot/
  custom/
  project.json

我想提供来自的文件 custom 因为它是一个虚拟文件夹 http://localhost/custom 无需在开发过程中复制它们。

是否可以在没有IIS的虚拟文件夹的情况下在vNext中执行此操作(例如,使用StaticFile中间件)?


10132
2017-08-11 16:17


起源



答案:


使用中间件时,可以在选项对象上设置文件提供程序。

app.UseStaticFiles(new StaticFileOptions() {
    FileProvider = new PhysicalFileProvider(@"C:\Path\To\Files"),
    RequestPath = new PathString("/somepath")
})

看到: https://github.com/aspnet/StaticFiles/blob/master/src/Microsoft.AspNetCore.StaticFiles/Infrastructure/SharedOptions.cs#L44

https://github.com/aspnet/FileSystem/blob/dev/src/Microsoft.Extensions.FileProviders.Physical/PhysicalFileProvider.cs


10
2017-08-11 18:01



您可能想要创建一个 composite 查看两者的文件提供程序 web root 文件夹以及您的自定义文件夹。目前没有内置的复合提供程序,但很容易创建一个。 - Kiran Challa
请记住,如果目录不存在,应用程序将无法启动。这让我难以接受部署测试服务器的一点点。 - Rakshasas


答案:


使用中间件时,可以在选项对象上设置文件提供程序。

app.UseStaticFiles(new StaticFileOptions() {
    FileProvider = new PhysicalFileProvider(@"C:\Path\To\Files"),
    RequestPath = new PathString("/somepath")
})

看到: https://github.com/aspnet/StaticFiles/blob/master/src/Microsoft.AspNetCore.StaticFiles/Infrastructure/SharedOptions.cs#L44

https://github.com/aspnet/FileSystem/blob/dev/src/Microsoft.Extensions.FileProviders.Physical/PhysicalFileProvider.cs


10
2017-08-11 18:01



您可能想要创建一个 composite 查看两者的文件提供程序 web root 文件夹以及您的自定义文件夹。目前没有内置的复合提供程序,但很容易创建一个。 - Kiran Challa
请记住,如果目录不存在,应用程序将无法启动。这让我难以接受部署测试服务器的一点点。 - Rakshasas