Como usar as rotas do AngularJS com o Express (Node.js) quando uma nova página é solicitada?
Estou usando o Express, que carrega o AngularJS de um diretório estático. Normalmente, vou pedirhttp://localhost/
, em que o Express me serve meuindex.html
e todos os arquivos Angular corretos, etc. No meu aplicativo Angular, eu tenho essas configurações de rotas, que substituem o conteúdo em umng-view
:
$routeProvider.when('/', {
templateUrl: '/partials/main.html',
controller: MainCtrl,
});
$routeProvider.when('/project/:projectId', {
templateUrl: '/partials/project.html',
controller: ProjectCtrl,
});
$locationProvider.html5Mode(true);
Na minha página principal, eu tenho um link para<a href="/project/{{project.id}}">
, que carregará com sucesso o modelo e me direcionará parahttp://localhost/project/3
ou qualquer ID que eu tenha especificado. O problema é quando tento direcionar meu navegador parahttp://localhost/project/3
ou atualizar a página, a solicitação vai para o servidor Express / Node, que retornaCannot GET /project/3
.
Como faço para configurar minhas rotas do Express para acomodar isso? Eu estou supondo que vai exigir o uso de$location
em Angular (embora eu prefira evitar as feias buscas e #heshes que eles usam), mas não sei como configurar as rotas do Express para lidar com isso.
Obrigado.