我需要从URL中删除'#'。可以通过设置
来完成$ locationprovider.html5mode({enabled:true,requireb:quart base:false});
但是,当我这样做时,我的路线将通往nodejs路线。前任:http://example.com/#/login-它将打开登录页面,但在删除HashBangs之后,其击中nodejs路由 - http://example.com/login。
该应用程序已完成,因此我现在无法更改实现。
请帮助。
编辑:这些是少数个态度
$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'
]
});
}]
}
})
在您的config block
中添加以下行$locationProvider.html5Mode(true).hashPrefix('!');
在您的index.html文件集中,通过在HTML页面的Head Tag中添加以下行
<base href="/" >
,然后在Node 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)
});