ASP.NET Kern map-route static file handler

Arbeite ich an einem ASP.NET Core-website (vormals ASP.NET 5 /vNext) mit Winkel. Um Winkel zu arbeiten, die ich benötige, um eine catch-all-route:

app.UseStaticFiles(); 
app.UseMvc(routes =>
        {
            //Angular fallback route
            routes.MapRoute("angular", "{*url}", new { controller = "Home", action = "Index" });                
        });

Ich habe auch ein paar Dateien/Ordner im wwwroot, wie:

wwwroot/app
wwwroot/assets
wwwroot/lib

Wenn alle Anfragen, die vorgenommen werden, um diese Pfade, zum Beispiel http://example.com/assets/css/test.css, und die Datei (test.css) NICHT vorhanden ist, sollte es nicht weiter auf der fallback-route. Sollte es wieder eine 404.

Gerade jetzt, wenn die Datei nicht existiert gibt es den Kantigen HTML. Also, wie kann ich es sagen, dass jeder Weg, beginnt mit '/assets " sollten nur weitergeleitet werden, der /zugestellt durch UseStaticFiles?

Dank.

  • Deine default-route poiting jeder url "{*url}" ist, vermasselt die UseStaticFiles. Der Einstiegspunkt für Winkel-konnte nur "/".
  • Ja, ich weiß... wie kann ich es umgehen? Ich muss die default-route für Eckige.
  • Sie sollten zeigen Sie die Standard-route auf eine statische index.html Datei. Es gibt keine Notwendigkeit für die Verwendung von MVC Rendern der Eckige Standard-Einstiegspunkt
  • Ich bin nicht mit "hash" URL... so Etwas wie example.com/account/123 auf erstes anfordern würde, senden Sie eine GET "/account/123" an den server. Alle diese sollte den Standard-Winkel-laden von HTML.
  • Dann sollten Sie definieren, so etwas wie "{Winkel}/{index}", weil diese "{*url}" umgeleitet wird jeder Fehler, sogar für statische Dateien, auf die defult url.
  • Meinst du, ich sollte Spiegel alle möglichen Winkel-Routen/URL auf dem server? Ich denke, das könnte funktionieren, aber dann müsste ich behaupten, dass an zwei stellen (Winkel-und server-Seite).
  • Winkel-Routen konfiguriert werden sollte, wird in Angular JS, gibt Es keine Notwendigkeit für die Verwendung von MVC-route Zeug, Sie sollten nur statische Dateien. Wie ich schon sagte, nur mithilfe von IIS host der Website, und konfigurieren Sie den Einstiegspunkt im Web.config ein index.html Datei. Auch, wenn Sie mit Html5Mode an Ihrem angular JS-app sollten Sie einen tiefen Blick an, wie so konfigurieren, dass Es nicht conflic mit server leitet, sagen, wieder, server Strecken sind nicht die gleichen wie angular js Routen.
  • Ich denke, dass wir das Missverständnis miteinander. Ich BIN mit Html5Mode (Winkel 2 defaults) werden. Ja, ich bin Umgang mit den Routen auf der Eckigen Seite, aber der server muss in der Lage sein zu laden Winkel auf jede URL, die mit "/eckig/url/foo/bar". Das Probleme ist, dass ich brauche ein paar Ausnahmen auf der fallback-route...

InformationsquelleAutor pbz | 2016-02-23
Schreibe einen Kommentar