Chcę włączyć tryb HTML5 dla mojej aplikacji. Podałem następujący kod do konfiguracji, jak pokazano tutaj :
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'
});
Jak widać, użyłem $locationProvider.html5mode
i zmieniłem wszystkie moje linki, ng-href
aby wykluczyć /#/
.
Problem
W tej chwili mogę przejść do localhost:9000/
strony indeksu i przejść do innych stron takich jak localhost:9000/about
.
Jednak problem występuje, gdy odświeżam localhost:9000/about
stronę. Otrzymuję następujące dane wyjściowe:Cannot GET /about
Jeśli spojrzę na połączenia sieciowe:
Request URL:localhost:9000/about
Request Method:GET
Podczas gdy jeśli najpierw przejdę do, localhost:9000/
a następnie kliknę przycisk, który przechodzi do /about
, otrzymam:
Request URL:http://localhost:9000/views/about.html
Które renderuje stronę idealnie.
Jak mogę włączyć obsługę kątową, aby uzyskać poprawną stronę po odświeżeniu?