Saya mendapat kesan bahwa Angular akan menulis ulang URL yang muncul dalam atribut href dari tag anchor dalam tempaltes, sehingga mereka akan berfungsi baik dalam mode html5 atau mode hashbang. The dokumentasi untuk layanan lokasi tampaknya mengatakan bahwa HTML link Rewriting mengurus situasi hashbang. Dengan demikian saya berharap bahwa ketika tidak dalam mode HTML5, hash akan dimasukkan, dan dalam mode HTML5, mereka tidak akan melakukannya.
Namun, tampaknya tidak ada penulisan ulang yang terjadi. Contoh berikut tidak memungkinkan saya untuk hanya mengubah mode. Semua tautan dalam aplikasi harus ditulis ulang dengan tangan (atau berasal dari variabel saat runtime. Apakah saya harus menulis ulang semua URL secara manual tergantung pada modenya?
Saya tidak melihat penulisan ulang sisi klien terjadi di Angular 1.0.6, 1.1.4 atau 1.1.3. Tampaknya semua nilai href perlu diawali dengan # / untuk mode hashbang dan / untuk mode html5.
Apakah ada beberapa konfigurasi yang diperlukan untuk menyebabkan penulisan ulang? Apakah saya salah membaca dokumen? Melakukan hal lain yang konyol?
Ini sebuah contoh kecil:
<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>
Tambahan: dalam membaca kembali pertanyaan saya, saya melihat bahwa saya menggunakan istilah "menulis ulang" tanpa banyak kejelasan tentang siapa dan kapan saya ingin melakukan penulisan ulang. Pertanyaannya adalah tentang bagaimana cara mendapatkan Angular untuk menulis ulang URL ketika itu membuat jalur dan bagaimana mendapatkannya untuk menafsirkan jalur dalam kode JS secara seragam di kedua mode. Ini bukan tentang bagaimana menyebabkan server web melakukan penulisan ulang permintaan yang kompatibel dengan HTML5.