2016-03-01 1 views
6

Мой URL выглядит следующим образом http://127.0.0.1:50884/index.html#/homeкак удалить хэш-тег (#) из адресной в Ui-маршрутизатор

Это индексная страница. Я использую угловую UI-маршрутизатор для изменения различных взглядов, как, но URL приходит с # тэгом как это: http://127.0.0.1:50884/index.html#/mobileOperator http://127.0.0.1:50884/index.html#/contentExpertise

Вопрос: Есть ли способ, чтобы удалить/чистый # тег из URL .. чтобы показать путь URL, как показано ниже:

http://127.0.0.1:50884/index.html/home

http://127.0.0.1:50884/index.html/contentExpertise

Я попытался html5mode, но он дает угловую ошибку в консоли.

Error: [$location:nobase] http://errors.angularjs.org/1.5.0-rc.2/$location/nobase 
K/<@http://127.0.0.1:50884/js/angular-v1.5.min.js:6:421 
pf/this.$get<@http://127.0.0.1:50884/js/angular-v1.5.min.js:110:96 
h/<[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:293 
gb/F<@http://127.0.0.1:50884/js/angular-v1.5.min.js:43:96 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:40:270 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:1 
h/<[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:86 
gb/F<@http://127.0.0.1:50884/js/angular-v1.5.min.js:43:96 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:40:270 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:1 
h/<[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:86 
gb/F<@http://127.0.0.1:50884/js/angular-v1.5.min.js:43:96 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:40:270 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:1 
h/<[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:86 
s/</<@http://127.0.0.1:50884/js/angular-v1.5.min.js:52:121 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:7:364 
s/<@http://127.0.0.1:50884/js/angular-v1.5.min.js:52:90 
h/<[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:293 
e/<@http://127.0.0.1:50884/js/angular-v1.5.min.js:38:458 
h/<[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:293 
gb/F<@http://127.0.0.1:50884/js/angular-v1.5.min.js:43:96 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:40:270 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:71:447 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:60:266 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:58:229 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:58:397 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:58:397 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:56:263 
Ac/c/</<@http://127.0.0.1:50884/js/angular-v1.5.min.js:21:99 
sf/this.$get</[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:140:363 
sf/this.$get</[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:141:83 
Ac/c/<@http://127.0.0.1:50884/js/angular-v1.5.min.js:21:57 
h/<[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:41:293 
Ac/[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:20:1 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:21:274 
[email protected]://127.0.0.1:50884/js/angular-v1.5.min.js:20:83 
@http://127.0.0.1:50884/js/angular-v1.5.min.js:306:372 
n.Callbacks/[email protected]://127.0.0.1:50884/js/jquery-2.2.1.min.js:2:27060 
n.Callbacks/[email protected]://127.0.0.1:50884/js/jquery-2.2.1.min.js:2:27828 
[email protected]://127.0.0.1:50884/js/jquery-2.2.1.min.js:2:29619 
[email protected]://127.0.0.1:50884/js/jquery-2.2.1.min.js:2:29804 
" 

Пожалуйста, помогите

+0

См. Это: http://stackoverflow.com/questions/28388860/angular-add-slash-before-hash-in-url/28388903#28388903 –

+0

использовать это :: $ locationProvider.html5Mode (true); –

ответ

11

По умолчанию AngularJS воли URL маршрутов с хэштегом. Очень просто получить чистые URL-адреса и удалить хэштег из URL-адреса, используя $locationProvider в AngularJS. Вам нужно ввести $locationProvider в свой раздел конфигурации модуля и использовать API истории HTML5. , например.

app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) { 
    $stateProvider 
     .state('home', { 
      url: '/home', 
      templateUrl: 'partial-home.html' 
     }) 
     .state('about', { 
      url: '/aboutus', 
      templateUrl: 'aboutus.html' 
     }); 
    $locationProvider.html5Mode(true); 
}); 

Также не забудьте поставить тег <base href="/"> внутри раздела index.html.

+0

теперь мой url выглядит как http://127.0.0.1:49625/home, но после добавления этого, если я нажму обновить, я получаю сообщение ' Не могу GET/home ', даже если я снова вернусь к тому же сообщению из другого URL-адреса. – Sam

+0

Теперь вам нужно переписать свой url. Дайте мне знать, какую серверную технологию вы используете с angularJS –

+0

Я нахожусь на локальном сервере с помощью bracket.io. и вот git repo https://github.com/vipul-verma/naysa – Sam

2

Для того, чтобы режим html5 для работы вы должны определить BaseUrl как:

<base href="whatever/" /> 

См w3schools для получения дополнительной информации: http://www.w3schools.com/tags/tag_base.asp

+0

это поможет мне для вашего ** что-то ** в нашем случае это было 'base_url()' –