代码之家  ›  专栏  ›  技术社区  ›  Keith

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

  •  1
  • Keith  · 技术社区  · 6 年前

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

    我想返回下面的各个目录 “wwwroot” (例如 "wwwroot/images" )这个中间件步骤可以:

    app.UseStaticFiles(); 
    

    我可以通过这个 StaticFileOptions 配置返回的内容。

    我想排除一个目录(例如 "wwwroot/node_modules" )也不允许从那里得到任何文件。

    似乎没有我可以使用的过滤器 静态文件选项 -我该如何应用该过滤器?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Keith    6 年前

    不要在静态文件中间件上寻找选项-而是 任何 中间件可以使用 MapWhen UseWhen 是的。这允许您只为传递条件的路由注册中间件。

    例如,排除 "wwwroot/node_modules" 以下内容:

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

    这将只在路由不以 "/node_modules" 是的。

    • 使用时间 如果下一个中间件失败,它就会失败
    • 地图绘制 只有在应用上下文筛选器时,才会转到下一个中间件