¿Cómo usar las rutas de AngularJS con Express (Node.js) cuando se solicita una nueva página?
Estoy usando Express, que carga AngularJS desde un directorio estático. Normalmente pediréhttp://localhost/
, en el que Express me sirve miindex.html
y todos los archivos Angular correctos, etc. En mi aplicación Angular, tengo estas rutas configuradas, que reemplazan el contenido en unang-view
:
$routeProvider.when('/', {
templateUrl: '/partials/main.html',
controller: MainCtrl,
});
$routeProvider.when('/project/:projectId', {
templateUrl: '/partials/project.html',
controller: ProjectCtrl,
});
$locationProvider.html5Mode(true);
En mi página principal, tengo un enlace a<a href="/project/{{project.id}}">
, que cargará exitosamente la plantilla y me dirigirá ahttp://localhost/project/3
o cualquier ID que haya especificado. El problema es cuando intento dirigir mi navegador ahttp://localhost/project/3
o actualice la página, la solicitud va al servidor Express / Node, que devuelveCannot GET /project/3
.
¿Cómo configuro mis rutas Express para acomodarme a esto? Supongo que requerirá el uso de$location
en Angular (aunque preferiría evitar las búsquedas feas y #hashes que usan), pero no tengo ni idea de cómo configurar las rutas Express para manejar esto.
Gracias.