Ich hatte den Eindruck, dass Angular URLs, die in href-Attributen von Ankertags innerhalb von Tempaltes erscheinen, so umschreiben würde, dass sie im HTML5-Modus oder im Hashbang-Modus funktionieren würden. Die Dokumentation für den Ortungsdienst scheint zu sagen, dass HTML Link Rewriting sich um die Hashbang-Situation kümmert. Ich würde daher erwarten, dass Hashes eingefügt werden, wenn sie sich nicht im HTML5-Modus befinden, und im HTML5-Modus nicht.
Es scheint jedoch, dass kein Umschreiben stattfindet. Im folgenden Beispiel kann ich den Modus nicht einfach ändern. Alle Links in der Anwendung müssten von Hand neu geschrieben werden (oder zur Laufzeit von einer Variablen abgeleitet werden. Muss ich je nach Modus alle URLs manuell neu schreiben?
In Angular 1.0.6, 1.1.4 oder 1.1.3 wird keine clientseitige URL-Umschreibung durchgeführt. Es scheint, dass allen href-Werten # / für den Hashbang-Modus und / für den HTML5-Modus vorangestellt werden muss.
Ist eine Konfiguration erforderlich, um das Umschreiben zu veranlassen? Verstehe ich die Dokumente falsch? Etwas anderes Dummes tun?
Hier ist ein kleines Beispiel:
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.3/angular.js"></script>
</head>
<body>
<div ng-view></div>
<script>
angular.module('sample', [])
.config(
['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
//commenting out this line (switching to hashbang mode) breaks the app
//-- unless # is added to the templates
$locationProvider.html5Mode(true);
$routeProvider.when('/', {
template: 'this is home. go to <a href="https://stackoverflow.com/about"/>about</a>'
});
$routeProvider.when('/about', {
template: 'this is about. go to <a href="https://stackoverflow.com/"/>home</a'
});
}
])
.run();
</script>
</body>
Nachtrag: Beim erneuten Lesen meiner Frage sehe ich, dass ich den Begriff "Umschreiben" verwendet habe, ohne viel Klarheit darüber zu haben, wer und wann ich das Umschreiben durchführen wollte. Die Frage ist, wie Angular dazu gebracht werden kann, die URLs beim Rendern von Pfaden neu zu schreiben, und wie Pfade im JS-Code in beiden Modi einheitlich interpretiert werden können. Es geht nicht darum, wie ein Webserver HTML5-kompatibles Umschreiben von Anforderungen veranlasst.