我需要从网址中删除“#”。可以通过设置
来完成$ locationProvider.html5Mode({enabled:true,requireBase:false});
但是当我这样做时,我的路线将转向Nodejs路线。 例如: http://example.com/#/login - 它将打开登录页面,但在删除hashbangs后,其命中nodejs路由 - http://example.com/login。
应用程序已完成,所以我现在无法更改实现。
请帮忙。
编辑: 这些是少数stateProvider
$urlRouterProvider.otherwise('/');
$stateProvider.state('index', {
url: '/',
templateUrl: 'partials/landing.html',
controller: 'mainController',
controllerAs: 'main',
resolve: {
deps: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'mainCtrl',
files: [
'plugins/raty/jquery.raty.js',
'js/controllers/HomeController.js'
]
});
}]
}
})
.state('home', {
url: '/home',
templateUrl: 'partials/home.html',
controller: 'landingController',
resolve: {
deps: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'mainCtrl',
files: [
'js/controllers/HomeController.js'
]
});
}]
}
})
答案 0 :(得分:0)
在配置块中添加以下行
$locationProvider.html5Mode(true).hashPrefix('!');
在index.html文件集基础中,在html页面的head标签中添加以下行
<base href="/" >
然后在节点server.js中通过添加以下代码来处理您的路由
app.get('*', function(req, res) {
res.sendFile("index.html",{root:__dirname+'/public'});
//load the single view file (angular will handle the page changes on the front-end)
});