Konfigurieren Sie einen statischen OWIN-Dateiserver mit einem bestimmten Routenpräfix
Ich experimentiere damit, meine Inhalte an nicht standardmäßigen Speicherorten zu speichern (z. B. inbower_components
oder/packages/../tools
). Im Rahmen des Experiments versuche ich, eine asp.net mvc 5-Anwendung einzurichten, mit der ich durch das Erreichen einer bestimmten Route Dateien im Paketverzeichnis von undersorejs durchsuchen kann.
Ich habe die folgenden Nuget-Pakete (zusätzlich zu den Standardpaketen)
Install-Package underscore.js
Install-Package Microsoft.Owin.StaticFiles
Install-Package Microsoft.Owin.Host.SystemWeb
Das habe ich in einer OWIN-Startklasse
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)
);
Nach meinem Verständnis und früheren Experimenten ist dies ziemlich einfach - wenn die Anfrage mit beginnt/__underscore
Verwenden Sie den einfachen statischen Dateiserver. Allerdings, wenn ich zu dir rübergehe/__underscore
Ich erhalte einen 404-Fehler.
Beim Platzieren von Haltepunkten kann ich jedoch feststellen, dass das UseFileServer-Lambda beim Start einmal und dann nie wieder ausgeführt wird, während das Prädikat Lambda bei jeder Anforderung aufgerufen wird (und den richtigen Wert zurückgibt).
Was vermisse ich?