我在"wwwroot"
下有一个文件夹,该文件夹在返回静态文件时不希望包含在内。
我想返回"wwwroot"
下的各种目录(例如"wwwroot/images"
),并且此中间件步骤启用了该功能:
app.UseStaticFiles();
我可以传递此StaticFileOptions
来配置返回的内容。
我想排除目录(例如"wwwroot/node_modules"
),并且不允许从该目录中提供任何statif文件。
似乎没有可以在StaticFileOptions
上使用的过滤器-我该如何应用该过滤器?
答案 0 :(得分:2)
不要在静态文件中间件上寻找选项-可以使用MapWhen
或UseWhen
过滤任何中间件。这样,您就只能为通过条件的路由注册中间件。
例如,排除"wwwroot/node_modules"
:
app.UseWhen(
context => !context.Request.Path.StartsWithSegments("/node_modules"),
appBuilder => appBuilder.UseStaticFiles());
现在,仅当路由不是以"/node_modules"
开头时,才应用静态文件中间件。
UseWhen
如果失败,将进入下一个中间件MapWhen
仅在应用上下文过滤器时才继续使用下一个中间件