при использовании html5Mode для отказа от хеша#, возникает проблема с переходом по адресу. Я использую виртуальный сервер, стартовая страница с адресом
localhost:9999, в конфиге это выглядит так
var portfolioApp = angular.module('portfolioApp', ['ngRoute', 'ngMaterial', 'portfolioControllers']);
portfolioApp.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider) {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
})
$routeProvider.
when('/', {
templateUrl: 'partials/home.html',
controller: 'HomeCtrl'
}).
when('/service', {
templateUrl: 'partials/service.html',
controller: 'ServiceCtrl'
}).
when('/works', {
templateUrl: 'partials/works.html',
controller: 'WorksCtrl'
}).
when('/about', {
templateUrl: 'partials/about.html',
controller: 'AboutCtrl'
}).
otherwise({
redirectTo: '/'
});
}
]);
при этом, все переходы по ссылкам с атрибутом
href="/service" с последующей подгрузкой в
ng-view service.html и как положено, в адресной строке я вижу -
localhost:9999/service
или ссылка с атрибутом
href="/" - с подгрузкой в
ng-view home.html --- работают!
если я введу в адресную строку ручками
localhost:9999 - тоже работает!
Но, если я введу в адресную строку ручками такой адрес
localhost:9999/service или
localhost:9999/works, то на белом экране я получаю:
Cannot GET /service или соответственно
Cannot GET /works. Это первая и ужасная проблема. Помогите
Вторая проблема - при замене в
ng-view страницы HTML на другую, я перехожу на новую страницу но уже с опущенным скролом, на таком же расстоянии - на каком закончил просмотр предыдущей страницы. Здесь поможет, наверное
$location, но как? Помогите