[英]How to remove hash from Url in meanjs app
我需要从网址中删除“#”。 它可以通过设置来完成
$ 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'
]
});
}]
}
})
在配置块中添加以下行
$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)
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.