Как удалить ' # ' вход в angular-ui-router URLs
Я использую библиотеку angular-ui-router, и у меня есть проблема с URL-адресами.
у меня есть следующий код:
приложение.js:
app.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('state', {
url: '/state',
templateUrl: 'templates/state.html',
onEnter: function () {
/*... code ...*/
}
})});
.html:
<a href="#/state">STATE</a>
это работает, но когда я удалить '#' с <a>
тег это не работает.
как я могу удалить знак '#' из URL?
3 ответа:
вам нужно включить HTML5Mode, если вы хотите навигации без хэш-тегов:
app.config(["$locationProvider", function($locationProvider) { $locationProvider.html5Mode(true); }]);
вам также нужно будет сообщить angular корневой URL вашего приложения, добавив следующий код в
<head>
вашего HTML файла:<base href="/">
имейте в виду, что поддержка режима HTML5 зависит от браузера. Для тех, кто не поддерживает API истории,угловой будет откат к hashbang.
Если вы используете Угловое 1.6+, вам также нужно будет удалить
hashPrefix
из URL:appModule.config(['$locationProvider', function($locationProvider) { $locationProvider.hashPrefix(''); // by default '!' $locationProvider.html5Mode(true); }]);
не забудьте также изменить базу:
<head> ... <base href="/"> </head>
yourApp.config(function ($stateProvider, $urlRouterProvider,$locationProvider) { $urlRouterProvider.otherwise('/home'); //add this line in your routing code $locationProvider.html5Mode(true); $stateProvider.state('web.home', { url: '/home', templateUrl: 'pages/home.html', controller: 'mainController' }) }
в свой индекс.php или индекс.html в tag insert
< base href="/" >
на CodeIgniter:
<base href=" < ?php echo base_url() ? >" >