webentwicklung-frage-antwort-db.com.de

Angular Routen enthalten #! In der URL anstelle von #

Kürzlich habe ich festgestellt, dass bei Verwendung des Moduls ngRoute in einer AngularJS-App die Route #! In der URL enthält, die zuvor nur # Lautete.

Zum Beispiel wird www.webiste.com/#/login Zu www.website.com/#!/login

Ich muss den html5Mode Und auch den requireBase deaktivieren, der die Basis als Ganzes mit dem Code entfernt.

$locationProvider.html5Mode({
       enabled: true,
       requireBase: false
});

und die URL ändert sich in www.website.com/login, was gut funktioniert, aber irreführend ist und nicht so aussieht, wie Angular SPA URLs).

Wenn ich den html5Mode Nicht aktiviere, ist die URL verschlüsselt und ich kann sie nicht umgehen. So wird www.website.com/#/login Zu www.website.com/#!/#%2Flogin (Beachten Sie, dass das spätere / Als %2F Codiert ist).

Ist dies eine Änderung, die von den Entwicklern für einen bestimmten Zweck implementiert wurde? Welchen Unterschied macht es? Welche Änderungen muss ich an meiner App vornehmen, damit sie funktioniert? Mache ich etwas falsch?

Github-Problem: https://github.com/angular/angular.js/issues/15547

15
Samarth Agarwal

Es heißt der Haschknall.

Eine Weile benutzte Twitter dasselbe. Es ermöglicht AJAX) Anrufe und lässt Suchmaschinen Ihren Pfad kennen, ohne einen "echten" Pfad zu verwenden. Es wird jedoch als veraltet angesehen.

https://developers.google.com/webmasters/ajax-crawling/docs/getting-started

Dazu gibt es noch eine andere Stackoverflow-Antwort:

Links wie Twitter, Hash-Bang #! URLs

3
Alexis Wilke