如何从网址中删除hash在meanjs应用程序
问题描述:
我需要从网址中删除'#'。它可以通过设置如何从网址中删除hash在meanjs应用程序
$ 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的头标记加入下面一行页
<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)
});
你可以在这里粘贴routeprovider吗? – Nitheesh
@Nitheesh:我补充说。 – UserV789456