Я получаю странное # в середине моего URL-адреса, например, если я пытаюсь перейти на localhost: 8080, где у меня работает приложение AngularJS, я перенаправлен на http://localhost: 8080/#/home. Я не понимаю, откуда это происходит, но я подозреваю, что это имеет какое-то отношение к URL-адресам, которые я определяю в моем $ stateProvider.
Вот код $ stateProvider:
//STATE HANDLER
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('newAlarm', {
url: '/newAlarm',
views: {
'': {templateUrl: '/templates/newAlarmPage.html'},
'header@newAlarm':{templateUrl: '/templates/header.html'},
'newAlarmForm@newAlarm':{templateUrl: '/templates/newAlarmForm.html'}
},
controller: 'NewScheduleCtrl'
})
//to be changed
.state('home', {
url: '/home',
views: {
'': {templateUrl: '/templates/homePage.html'},
'header@home':{templateUrl: '/templates/header.html'}
},
controller: ''
});
//end of to be changed
$urlRouterProvider.otherwise('home');
}]);
Есть предположения?
Из статьи в Википедии о приложениях с одной страницей:
Страница не перезагружается в любой момент процесса, а также не переносит передачу на другую страницу, хотя хеш местоположения может использоваться для обеспечения восприятия и навигации отдельных логических страниц в приложении
Использование хэша позволяет угловым (и другим сетям SPA) маршрутизировать URL-адреса без перезагрузки страницы.
Связанные вопросы:
Вы можете отключить хэш, если хотите.
app.config(['$stateProvider','$urlRouterProvider','$locationProvider',
function($stateProvider, $urlRouterProvider,$locationProvider) {
//ROUTING
$locationProvider.html5Mode(true);
}]);
Затем добавьте в свой индекс html файл:
<!doctype html>
<html>
<head>
//...
<base href="/">
</head>
//...
</html>