Настройте статический файловый сервер 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 выполняется один раз при запуске, а затем никогда больше, в то время как лямбда-предикат вызывается при каждом запросе (и возвращает правильное значение).

Что мне не хватает?

Ответы на вопрос(1)

Ваш ответ на вопрос