Quiero habilitar el modo HTML5 para mi aplicación. He puesto el siguiente código para la configuración, como se muestra aquí :
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 puede ver, usé el $locationProvider.html5mode
y cambié todos mis enlaces en el ng-href
para excluir el /#/
.
El problema
Por el momento, puedo ir localhost:9000/
y ver la página de índice y navegar a las otras páginas como localhost:9000/about
.
Sin embargo, el problema ocurre cuando actualizo la localhost:9000/about
página. Me sale el siguiente resultado:Cannot GET /about
Si miro las llamadas de red:
Request URL:localhost:9000/about
Request Method:GET
Mientras que si primero voy localhost:9000/
y luego hago clic en un botón que navega /about
, obtengo:
Request URL:http://localhost:9000/views/about.html
Lo que hace la página perfectamente.
¿Cómo puedo habilitar angular para obtener la página correcta cuando actualizo?