Tôi có ấn tượng rằng Angular sẽ viết lại các URL xuất hiện trong các thuộc tính của thẻ neo trong tempaltes, sao cho chúng hoạt động cho dù ở chế độ html5 hay chế độ hashbang. Các tài liệu hướng dẫn sử dụng dịch vụ vị trí dường như để nói rằng HTML Link Viết lại sẽ chăm sóc của tình hình hashbang. Do đó, tôi hy vọng rằng khi không ở chế độ HTML5, băm sẽ được chèn và trong chế độ HTML5, chúng sẽ không.
Tuy nhiên, dường như không có việc viết lại đang diễn ra. Ví dụ sau không cho phép tôi chỉ thay đổi chế độ. Tất cả các liên kết trong ứng dụng sẽ cần phải được viết lại bằng tay (hoặc xuất phát từ một biến khi chạy. Tôi có bắt buộc phải viết lại tất cả các URL tùy thuộc vào chế độ không?
Tôi không thấy bất kỳ việc viết lại url phía máy khách nào đang diễn ra trong Angular 1.0.6, 1.1.4 hoặc 1.1.3. Có vẻ như tất cả các giá trị href cần được thêm vào với chế độ # / cho hashbang và / cho chế độ html5.
Có một số cấu hình cần thiết để gây ra viết lại? Tôi đang đọc sai các tài liệu? Làm điều gì khác ngớ ngẩn?
Đây là một ví dụ nhỏ:
<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>
Phụ lục: khi đọc lại câu hỏi của tôi, tôi thấy rằng tôi đã sử dụng thuật ngữ "viết lại" mà không có nhiều sự rõ ràng về việc ai và khi nào tôi muốn viết lại. Câu hỏi là về cách làm cho Angular viết lại các URL khi nó hiển thị các đường dẫn và làm thế nào để nó diễn giải các đường dẫn trong mã JS thống nhất qua hai chế độ. Đây không phải là về cách làm cho máy chủ web thực hiện việc viết lại các yêu cầu tương thích với HTML5.