如何从 ASP.NET Core 的静态文件中排除文件夹?



我在"wwwroot"下有一个文件夹,我不想在返回静态文件时包含该文件夹。

我想在"wwwroot"下返回各种目录(例如"wwwroot/images"(,这个中间件步骤可以实现:

app.UseStaticFiles(); 

我可以通过此StaticFileOptions来配置返回的内容。

我想排除一个目录(例如"wwwroot/node_modules"(,并且不允许从中提供任何 statif 文件。

似乎没有我可以在StaticFileOptions上使用的过滤器 - 我应该如何应用该过滤器?

不要在静态文件中间件上寻找选项 - 相反,任何中间件都可以使用MapWhenUseWhen进行过滤。这允许您仅为传递条件的路由注册中间件。

例如,要排除"wwwroot/node_modules"

app.UseWhen(
context => !context.Request.Path.StartsWithSegments("/node_modules"),
appBuilder => appBuilder.UseStaticFiles());

现在,仅当路由不以"/node_modules"开头时,这将仅应用静态文件中间件。

  • 如果失败,UseWhen会落入下一个中间件
  • MapWhen只有在应用上下文过滤器时才转到下一个中间件

最新更新