我正在使用angular-ui-router库,但我在URL方面遇到了问题。
我有以下代码:
app.js:
app.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('state', {
url: '/state',
templateUrl: 'templates/state.html',
onEnter: function () {
/*... code ...*/
}
})});index.html:
<a href="#/state">STATE</a>这是有效的,但是当我从<a>标签中删除'#‘时,它就不起作用了。
如何从URL中删除'#‘符号?
发布于 2014-03-01 02:20:41
如果您希望导航不使用散列标签,则需要启用HTML5Mode:
app.config(["$locationProvider", function($locationProvider) {
$locationProvider.html5Mode(true);
}]);您还需要通过将以下代码添加到您的HTML文件的<head>中来告诉angular应用程序的根地址:
<base href="/">请注意,对HTML5模式的支持取决于浏览器。对于那些不支持History API的用户,可以使用Angular will fallback to hashbang。
发布于 2017-04-24 21:03:35
如果您使用的是Angular 1.6+,则还需要从以下网址中删除hashPrefix:
appModule.config(['$locationProvider', function($locationProvider) {
$locationProvider.hashPrefix(''); // by default '!'
$locationProvider.html5Mode(true);
}]);也不要忘了更改基数:
<head>
...
<base href="/">
</head>发布于 2017-04-29 17:40:56
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'
})
}在index.php或index.html中插入标记
< base href="/" >对于CodeIgniter:
<base href=" < ?php echo base_url() ? >" >https://stackoverflow.com/questions/22102815
复制相似问题