Configure un servidor de archivos estáticos OWIN en un prefijo de ruta específico
Estoy experimentando con mantener mi contenido en ubicaciones no predeterminadas (por ejemplo, enbower_components
o/packages/../tools
) Como parte del experimento, estoy tratando de configurar una aplicación asp.net mvc 5 donde golpear una ruta determinada me permite navegar por los archivos en el directorio del paquete undersorejs.
Tengo los siguientes paquetes nuget (además del predeterminado)
Install-Package underscore.js
Install-Package Microsoft.Owin.StaticFiles
Install-Package Microsoft.Owin.Host.SystemWeb
Esto es lo que tengo en una clase de inicio 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 mi comprensión y experimentación previa, esto es bastante sencillo: cuando la solicitud comienza con/__underscore
use el servidor de archivos estático simple. Sin embargo, cuando me dirijo a/__underscore
Me sale un error 404.
Sin embargo, al colocar puntos de interrupción puedo ver que la lambda UseFileServer se ejecuta una vez al inicio y luego nunca más, mientras que se llama al predicado lambda en cada solicitud (y devuelve el valor correcto).
¿Qué me estoy perdiendo?