2017-02-07 2 views
-1

Когда я тип http://localhost:6060/home, он показал мне не может получить /home, но когда я нажимаю на кнопку $state.go('home'), он показывает, и URL по-прежнему http://localhost:6060/home. Но когда я обновляюсь, его неподвижные изображения не отображаются. Как он может отображаться при вводе URL-адреса?Угловая UI-маршрутизатор, не найден на URL освежающего

Вот мой код:

router.js

$stateProvider.state("home", { 
    url: "/home", 
    template: "<h2>I am a router test</h2>" 
}); 
$locationProvider.html5Mode(true); 

index.html

<head> 
    <title>for test</title> 
    <base href="/"> 
</head> 
<body ng-app="my.module"> 
    <h1>I am just a test</h1> 
    <div ng-controller="test"><button class="btn btn-default" 
     ng-click="testclick()">click me</button></div> 
    <ui-view></ui-view> 
</body> 

Контроллер:

$scope.testclick = function() { 
    $state.go('home'); 
}; 

Если я не использую $locationProvider.html5Mode(true); и не установить base бирка, я должен набрать localhost:6060/#!/home. Что означает !?

+0

Вы можете добавить свой код '.config()? – pryxen

+1

Также см. Http://stackoverflow.com/documentation/angularjs/3208/angularjs-gotchas-and-traps/21798/things-to-do-when-using-html5mode#t=201702070409442702025 – Phil

ответ

0

Есть ли у вас серверная (PHP, Node.js и т. Д.)? Чтобы использовать html5Mode(true), вам нужна конфигурация на стороне сервера, которая перенаправляет все маршруты на индексную страницу, поэтому вы можете обновить страницу без ошибки «Can not get».


Что делает! имею в виду?

Чтобы понять это, вы должны прочитать Angular documentation: символ маркировки возгласа ! является режимом hashbang, то формат URL по умолчанию, а также запасной вариант для режима HTML5 в старых браузерах.

Смежные вопросы