Voglio abilitare la modalità HTML5 per la mia app. Ho inserito il seguente codice per la configurazione, come mostrato qui :
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'
});
Come puoi vedere, ho usato il $locationProvider.html5mode
e ho cambiato tutti i miei collegamenti in ng-href
per escludere il /#/
.
Il problema
Al momento, posso andare a localhost:9000/
vedere la pagina dell'indice e passare ad altre pagine simili localhost:9000/about
.
Tuttavia, il problema si verifica quando aggiorno la localhost:9000/about
pagina. Ottengo il seguente output:Cannot GET /about
Se guardo le chiamate di rete:
Request URL:localhost:9000/about
Request Method:GET
Mentre se prima vado localhost:9000/
e poi faccio clic su un pulsante che naviga verso /about
ottengo:
Request URL:http://localhost:9000/views/about.html
Il che rende la pagina perfettamente.
Come posso abilitare Angular per ottenere la pagina corretta quando aggiorno?