Если пользователь myURL/ или myURL/#/ или даже myURL/#/Foo они получают на мою страницу индекса.реализации угловую-UI-маршрутизатор «иначе» состояние
Но если они набирают myURL/foo, они получают 404. Это ужасно. Вместо этого они должны быть перенаправлены на /.
Я пытаюсь реализовать это, и мне не очень повезло.
(function() {
'use strict';
angular
.module('myApp')
.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('index', {
name: 'index',
url: '/',
templateUrl: 'js/views/page1.html',
controllerAs: 'page1Controller',
data: { pageTitle: 'Main' }
})
.state('page2', {
name:'page2',
url: '/page2/:id',
templateUrl: 'js/views/page2.html',
controllerAs: 'page2Controller',
data: { pageTitle: 'page2' }
})
$urlRouterProvider.otherwise('/');
}]);
})();
Я посмотрел на десятки статей, и нигде не я, кажется, чтобы быть в состоянии найти этот простой случай обрабатывается.
Является ли то, что я пытаюсь сделать не стандартным поведением для веб-сайта? Каждый раз, когда пользователь вводит плохой URL-адрес, он просто возвращается на главную страницу? – DaveC426913
По умолчанию, AngularJS будет маршрутизировать URL-адреса с хэштегом. Независимо от того, что hashtag не является допустимым маршрутом в угловом 1 $ locationProvider по умолчанию. Эта проблема может быть решена путем удаления # (модификация $ locationProvider. Она была удалена в Angular 2. Надеюсь, что это поможет. Если вам нужна помощь в удалении #, дайте мне знать. – flashjpr