Dies ist meine erste Erfahrung mit AngularUI Router, also schätze ich, dass ich einen Anfängerfehler mache und hoffe, dass mich jemand führen kann.Wie bekomme ich Angular UI Router um "nicht geroutete" URLs zu erhalten?
Ich habe eine einseitige Anwendung für die Verwendung von Angular UI Router im HTML5-Modus konfiguriert, und alles scheint wie erwartet zu funktionieren.
.config([
"$stateProvider", "$urlRouterProvider", "$locationProvider",
function ($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider.state("concept", {
url: "/concepts/:conceptKey",
templateUrl: "/templates/concept-view.html",
controller: "conceptViewController",
resolve: {
concept: [
"$stateParams", "conceptsApi",
function ($stateParams, conceptsApi) {
return conceptsApi.getConcept($stateParams.conceptKey);
}
]
}
});
$urlRouterProvider.otherwise("/");
$locationProvider.html5Mode(true);
}
])
Die gleiche Seite enthält jedoch auch einige Links zu anderen statischen Seiten auf der gleichen Website mit relativen URLs. Vor der Installation von Angular Routing funktionierten diese Links korrekt, aber jetzt sind sie gebrochen. Insbesondere wird durch Klicken auf einen dieser Links die Adressleiste des Browsers korrekt geändert, aber die Navigation zu dieser Zielseite wird nicht ausgelöst.
Ich nehme an, ich muss etwas hinzufügen, um der Routing-Konfiguration zu sagen, bestimmte URL-Muster zu ignorieren, aber ich habe keine Informationen gefunden, die mir zeigen, wie das geht. Irgendwelche Vorschläge bitte?
Danke, Tim
Es scheint, dass Ihre Serverseite nicht gut konfiguriert ist. Wie auch immer, überprüfe [diesen Link mit example/plocker] (http://stackoverflow.com/a/26009350/1679310) von UI-Router und html5. Wenn der Server gut konfiguriert ist, sollte das auch funktionieren. –
Danke für Ihren Vorschlag, aber ich sehe nicht, wie dies für meine Situation gilt. UI-Routing funktioniert ordnungsgemäß für URLs, die der definierten Statuskonfiguration entsprechen, verhindert jedoch die Navigation zu einer statischen Seite in derselben Domäne. Wenn ich diese statische Seite direkt von einer neuen Browser-Registerkarte anfordere, wird sie korrekt gerendert, und ebenso, wenn ich das Routing deaktiviere. Das Problem tritt nur auf, wenn das Routing aktiv ist, wobei alle Verbindungen innerhalb des SPA, die auf Seiten außerhalb des SPA ausgerichtet sind, unterbrochen sind. –
Ich denke, ich sehe jetzt.Dann (wenn ich Ihr Problem verstehe) würde ich sagen, dass Sie nur Ihren Serverteil ändern müssen. Ich benutze ASP.NET MVC ... und das ist ein Ort, an dem ich einstellen kann, wie der SERVER auf eine beliebige URL reagiert. Einige werden auf index.html umgeleitet ... einige werden wie erwartet bedient. Überprüfen Sie es dort ... (Link, wie das in MVC http://Stackoverflow.com/a/27707238/1679310) –