asp.net mvc-hosting-Winkel-app mit html5mode und routing
Okay, also ich bin hosting eine angularjs innen asp.net mvc 5 und sind mit der html5mode(true)
in meinem angular-app, um loszuwerden, alle hash-Zeichen in der url.
Funktioniert alles Super, aber mit meinem aktuellen setup sieht wie folgt aus:
RouteConfig.cs:
routes.MapRoute(
name: "Default",
url: "app/{angular}",
defaults: new { controller = "Ng", action = "Index", angular= UrlParameter.Optional }
);
So, dass, wenn ich navigieren Sie zu http://url/app/myangularroute
meine Ng/Index Aktion liefert die view enthält die ng-view-container und die Winkel-app ist nun aktiv und arbeiten mit der route zur Verfügung gestellt
Nun, mein problem hier ist, wenn ich navigieren Sie zu http://url/app/
es gibt eine dir listning nicht erlaubt Fehler, die ich nicht verstehen kann. Sollte nicht meine index-Aktion zurückgegeben werden, wie der Winkel-parameter optional?
Und kann ich irgendwie verhindern, dass die "app" komplett und bekommen immer noch meine kantigen app zu arbeiten? Ich habe versucht, einige rewrite-Regeln, aber das gibt mir eine Menge von Fehlern, da bin ich die Nutzung des mvc-Bündelung und Verkleinerung Funktionalität.
Könnte ich Leben, mit dem url format es derzeit ist, aber ohne Angabe der optionalen parameter, wie http://url/app/
Auch, es ist nur ein Winkel-app, keine anderen mvc-Ansicht als der index.cshtml-wrapper.
Dieser Kerl scheint es zu funktionieren, aber ich kann nicht sehen, seine mvc-Routen
- Welche version von IIS verwenden Sie? Ist es IIS 6?
- Ich bin mir nicht sicher, ich bin die Bereitstellung in windows azure, ich glaube nicht, dass Sie solch alte version...ich nehme an IIS 8. Sie denken, dies könnte ein IIS-Problem?
- Yupp, es ist version 8
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie, dies in Ihrer web.config
sytem.webserver
Einstellungen.BEARBEITEN:
Versuchen Sie Ihr RouteConfig.cs, wie diese:
EDIT2:
Hatte ich völlig forgoten über diese Frage, aber jetzt habe ich gerade festgestellt, dass vielleicht das problem ist, dass Sie noch nicht konfigurierten IIS-Server arbeiten mit Html5Mode, haben Sie einen Blick auf diese: https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode
Concretelly dieser Artikel:
Azure-IIS Schreibt:
Ich hoffe, dass dies hilft.
Dies ist meine Lösung. Ich bin mit ASP.NET MVC + Web-API.
ASP.NET MVC immer wieder die gleichen HTML-Seite für jede URL, so AngularJS übernehmen kann, die in $locationProvider.html5Mode(true);
RouteConfig.cs
WebApiConfig.cs
HomeController.cs
index.html
?Okay, ich habe es zu arbeiten.
Dadurch:
Ohh wow, ich schaltete die Bündelung und Verkleinerung, das war eigentlich das, was es am Ende funktionieren. Wenn ich ihn einschalte bekomme ich ein Winkelfehler.
Ich dachte ehrlich, ich habe versucht, diese wie 10 mal ohne Erfolg. Es begann zu zeigen Anzeichen von zu arbeiten, wenn ich entfernt die base href.
Alte Frage, aber immer noch gültig, dies ist meine Lösung :
Mit meinem ASP.NET 5 RC-Website - hat WebAPI aber nicht MVC - die Lösung war, eine Standard-rewrite-Regel in wwwroot\web.config ' s
system.webserver
tag:Ich bin vor dem gleichen problem, ich habe die base-href im layout.cshtml ,legen Sie die webconfig-rewrite-Regel, beim laden der app Im bundle config habe ich eingestellt das alle Skripte und css, wenn die app startet ,nicht geladen werden . unerwartete syntax-Fehler < angezeigt in der Konsole.
wenn ich die Regel entfernen und base-href-und location-Anbieter ist falsch , es funktioniert Prima .
Angular Js Seltsames Problem Ui-Router Html5mode aktiviert page refresh Problem in mvc-500-Fehler