如何在aspnet核心应用程序中为静态文件使用多个目录?

Joh*_*ohn 11 asp.net-core

默认情况下,wwwroot目录可以托管静态文件.但是,在某些情况下,为静态文件创建两个目录可能是理想的.(例如,让webpack将构建转储到一个gitignored目录中,并在非gitignored目录中保留一些图像文件,favicon等).从技术上讲,这可以通过在wwwroot中包含两个文件夹来实现,但从组织上来说,最好在根级别拥有这些文件夹.有没有办法配置一个aspnet核心应用程序使用两个单独的目录静态文件?

juu*_*nas 19

只需注册UseStaticFiles两次:

app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(
        Path.Combine(Directory.GetCurrentDirectory(), "static"))
});
Run Code Online (Sandbox Code Playgroud)

现在可以从wwwroot和静态文件夹中找到文件.

  • 为什么[文档](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-3.0#serve-files-outside-of-web-root)从不说*只需注册 UseStaticFiles 两次*? (7认同)
  • @zwcloud 它实际上是说:从多个位置提供文件 UseStaticFiles 和 UseFileServer 默认为指向 wwwroot 的文件提供程序。可以通过其他文件提供程序提供 UseStaticFiles 和 UseFileServer 的附加实例,以从其他位置提供文件。 (3认同)