Tôi đang xây dựng một ứng dụng AngularJS không nằm ở vị trí gốc domain.tld/blog
. Tôi có thiết lập định tuyến cho mọi thứ trên cơ sở /blog
. Tôi đã đưa thẻ cơ sở vào phần đầu của trang <base href="/blog">
. html5Mode
được đặt thành true
. Trong ứng dụng mọi thứ hoạt động như mong đợi. Tuy nhiên, khi tôi nhấp vào một URL không phải góc cạnh bên ngoài vị trí cơ sở, trang không được tải. Dường như vị trí này được đánh bắt bởi các otherwise
chức năng trong các bộ định tuyến:AngularJS định tuyến cướp các URL không phải là cơ sở khi tải lại trang được mong đợi
ROUTER.otherwise({
redirectTo : '/blog'
});
Vì vậy, khi tôi nhấp vào bất kỳ url, ví dụ: domain.tld/somewhere-else
nó chuyển hướng đến domain.tld/blog. Rõ ràng đây là những gì bạn mong đợi: đối với mỗi URL không được tìm thấy trong bộ định tuyến, chuyển hướng nó đến 'trang chủ'. Trong ứng dụng của tôi, đây không phải là hành vi mong muốn. Tất cả các url không có trong bộ định tuyến phải được coi là url bình thường và kích hoạt lại một trang cho url đó.
Vì vậy, những gì tôi cần là một cái gì đó như thế này:
ROUTER.otherwise(
window.location = theRequestedUrl;
);
này không làm việc rõ ràng. Nhưng bằng cách nào đó tôi cần phải vào bên trong phần khác của router và yêu cầu nó chuyển hướng đến trang có tải lại trang.
Các câu dưới đây liên quan: angular routing something weird happening
Các jsFiddle dưới đây trình bày vấn đề http://fiddle.jshell.net/43tub/6/show/light/ (nhờ @rdjs!). Click vào liên kết /outside
nên làm mới trang đầy đủ ...
phiên bản AngularJS bạn đang sử dụng? – rdjs
@rdjs 1.1.5, nhưng hành vi là như nhau trong 1.0.7 – DivZero
Điều này có thể giải quyết vấn đề một cách chính xác không? http://jsfiddle.net/43tub/6/ – rdjs