Configurar um servidor de arquivos estático OWIN em um prefixo de rota específico

Estou tentando manter meu conteúdo em locais não padrão (por exemplo, embower_components ou/packages/../tools) Como parte do experimento, estou tentando configurar um aplicativo asp.net mvc 5 em que atingir uma determinada rota permita-me procurar arquivos no diretório de pacotes undersorejs.

Eu tenho os seguintes pacotes de nuget (além do padrão)

Install-Package underscore.js
Install-Package Microsoft.Owin.StaticFiles
Install-Package Microsoft.Owin.Host.SystemWeb

Isto é o que eu tenho em uma classe de inicialização OWIN

 var fileSystem = new PhysicalFileSystem(
                    HttpContext.Current.Server.MapPath("~")+"/../packages/underscore.js.1.6.0"
                  );
 var options = new FileServerOptions {EnableDirectoryBrowsing = true, FileSystem = fileSystem};

 app.MapWhen(ctx => 
      ctx.Request.Uri.AbsolutePath.StartsWith("/__underscore"), 
      ab => ab.UseFileServer(options)
 );

Para meu entendimento e experimentação anterior, isso é bastante direto - quando a solicitação começa com/__underscore use o servidor de arquivos estático simples. No entanto, quando vou para/__underscore Eu recebo um erro 404.

No entanto, ao colocar pontos de interrupção, vejo que o lambda UseFileServer é executado uma vez na inicialização e nunca mais, enquanto o lambda predicado é chamado em todas as solicitações (e retorna o valor correto).

o que estou perdendo?

questionAnswers(1)

yourAnswerToTheQuestion