Настройте статический файловый сервер OWIN с определенным префиксом маршрута.
Я экспериментирую с хранением своего контента в нестандартных местах (например, вbower_components
или же/packages/../tools
). В рамках эксперимента я пытаюсь настроить приложение asp.net mvc 5, в котором выполнение определенного маршрута позволяет мне просматривать файлы в каталоге пакета undersorejs.
У меня есть следующие пакеты nuget (в дополнение к стандартным)
Install-Package underscore.js
Install-Package Microsoft.Owin.StaticFiles
Install-Package Microsoft.Owin.Host.SystemWeb
Это то, что я имею в стартапе 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)
);
Насколько я понимаю, и предыдущие эксперименты это довольно просто - когда запрос начинается с/__underscore
использовать простой статический файловый сервер, Однако, когда я иду к/__underscore
Я получаю ошибку 404.
Однако, устанавливая точки останова, я вижу, что лямбда UseFileServer выполняется один раз при запуске, а затем никогда больше, в то время как лямбда-предикат вызывается при каждом запросе (и возвращает правильное значение).
Что мне не хватает?