Quero ativar o modo HTML5 para meu aplicativo. Eu coloquei o seguinte código para a configuração, como mostrado aqui :
return app.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider) {
$locationProvider.html5Mode(true);
$locationProvider.hashPrefix = '!';
$routeProvider.when('/', {
templateUrl: '/views/index.html',
controller: 'indexCtrl'
});
$routeProvider.when('/about',{
templateUrl: '/views/about.html',
controller: 'AboutCtrl'
});
Como você pode ver, eu usei o $locationProvider.html5mode
e mudei todos os meus links no ng-href
para excluir o /#/
.
O problema
No momento, eu posso ir localhost:9000/
e ver a página de índice e navegar para as outras páginas como localhost:9000/about
.
No entanto, o problema ocorre quando atualizo a localhost:9000/about
página. Eu recebo a seguinte saída:Cannot GET /about
Se eu olhar para as chamadas de rede:
Request URL:localhost:9000/about
Request Method:GET
Enquanto, se eu for primeiro localhost:9000/
e clicar em um botão que navega até /about
eu recebo:
Request URL:http://localhost:9000/views/about.html
O que renderiza a página perfeitamente.
Como posso ativar o angular para obter a página correta quando atualizo?