Tôi có dự án hạt giống AngularJS và tôi đã thêm
$locationProvider.html5Mode(true).hashPrefix('!');
vào tệp app.js. Tôi muốn định cấu hình IIS 7 để định tuyến tất cả các yêu cầu tới
http://localhost/app/index.html
để điều này làm việc cho tôi. Làm thế nào để tôi làm điều này?
Cập nhật:
Tôi vừa mới phát hiện, tải xuống và cài đặt mô-đun Viết lại URL IIS , hy vọng điều này sẽ giúp việc đạt được mục tiêu của tôi trở nên dễ dàng và rõ ràng.
Cập nhật 2 :
Tôi đoán điều này tổng hợp những gì tôi đang cố gắng đạt được (lấy từ tài liệu Nhà phát triển AngularJS ):
Sử dụng chế độ này yêu cầu viết lại URL ở phía máy chủ, về cơ bản, bạn phải viết lại tất cả các liên kết của bạn đến điểm vào của ứng dụng của bạn (ví dụ: index.html)
Cập nhật 3:
Tôi vẫn đang làm việc này và tôi nhận ra rằng tôi KHÔNG cần chuyển hướng (có quy tắc viết lại) một số URL nhất định như
http://localhost/app/lib/angular/angular.js
http://localhost/app/partials/partial1.html
vì vậy bất cứ điều gì trong các thư mục css, js, lib hoặc partials đều không được chuyển hướng. Mọi thứ khác sẽ cần được chuyển hướng đến app / index.html
Bất cứ ai cũng biết làm thế nào để đạt được điều này một cách dễ dàng mà không cần phải thêm một quy tắc cho mỗi tệp duy nhất?
Cập nhật 4:
Tôi có 2 quy tắc gửi đến được xác định trong mô-đun Viết lại URL IIS. Nguyên tắc đầu tiên là:
Quy tắc thứ hai là:
Bây giờ khi tôi điều hướng đến localhost / app / view1, nó sẽ tải trang, tuy nhiên các tệp hỗ trợ (các tệp trong thư mục css, js, lib và partials) cũng đang được ghi lại vào trang app / index.html - vì vậy mọi thứ đang đến trở lại là trang index.html cho dù URL nào được sử dụng. Tôi đoán điều này có nghĩa là quy tắc đầu tiên của tôi, được cho là để ngăn các URL này được xử lý bởi quy tắc thứ hai, không hoạt động .. có ý tưởng nào không? ...bất kỳ ai? ...Tôi cảm thây cô đơn... :-(
app/index.html
và không app/
kích hoạt rõ ràng trang phục vụ AngularJS. tôi đã mất 2 giờ trong cuộc đời trước khi tôi nhận ra. :-)