Tengo el proyecto semilla AngularJS y he agregado
$locationProvider.html5Mode(true).hashPrefix('!');
al archivo app.js. Quiero configurar IIS 7 para enrutar todas las solicitudes a
http://localhost/app/index.html
para que esto funcione para mí ¿Cómo hago esto?
Actualizar:
Acabo de descubrir, descargar e instalar el módulo de reescritura de URL de IIS , esperando que esto haga que sea fácil y obvio lograr mi objetivo.
Actualización 2 :
Supongo que esto resume lo que estoy tratando de lograr (tomado de la documentación de AngularJS Developer ):
El uso de este modo requiere la reescritura de URL en el lado del servidor, básicamente debe reescribir todos sus enlaces al punto de entrada de su aplicación (por ejemplo, index.html)
Actualización 3:
Todavía estoy trabajando en esto y me doy cuenta de que NO necesito redirigir (tener reglas que reescriban) ciertas URL como
http://localhost/app/lib/angular/angular.js
http://localhost/app/partials/partial1.html
así que todo lo que está en los directorios css, js, lib o parciales no se redirige. Todo lo demás deberá ser redirigido a app / index.html
¿Alguien sabe cómo lograr esto fácilmente sin tener que agregar una regla para cada archivo?
Actualización 4:
Tengo 2 reglas entrantes definidas en el módulo IIS URL Rewrite. La primera regla es:
La segunda regla es:
Ahora, cuando navego a localhost / app / view1, carga la página, sin embargo, los archivos de soporte (los que están en los directorios css, js, lib y partials) también se están reescribiendo en la página app / index.html, por lo que todo está llegando volver a la página index.html sin importar qué URL se utiliza. Supongo que esto significa que mi primera regla, que se supone que evita que estas URL sean procesadas por la segunda regla, no está funcionando ... ¿alguna idea? ...¿nadie? ...Me siento tan sola... :-(
app/index.html
y no app/
activar explícitamente la página que sirve AngularJS. Perdí 2 horas de mi vida antes de resolverlo. :-)