使用AngularJS和Express进行路由
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用AngularJS和Express进行路由相关的知识,希望对你有一定的参考价值。
我试图在Express Express旁边使用AngularJS ngRoute
但是我一直收到以下错误:
无法获取/个人资料
这是我的代码:
.config(['$locationProvider', '$routeProvider', function ($locationProvider, $routeProvider) {
$routeProvider.when('/profile', {
templateUrl: 'views/partials/profile.html',
controller: 'kontrola'
})
$locationProvider.html5Mode('true')
$locationProvider.hashPrefix('!')
app.get('/', routes.index)
app.get('/login', routes.login)
app.get('/signup', routes.signup)
我该如何解决?
Angular的ngRoute
用于客户端路由,而express用于服务器端路由。
您需要在服务器中设置一个处理程序来提供静态文件,如下所示(假设您的views
文件夹位于static
文件夹中:
app.set('views', path.join(__dirname, 'static'));
然后,当你去http://yourservername/#/profile
时,你会得到你的个人资料视图。
如果你想使用html5mode
,你需要有这样的标签:
<head>
.....
<base href="/">
</head>
.config(['$ locationProvider','$ routeProvider','$ provide',function($ locationProvider,$ routeProvider){
$routeProvider.when('/profile', {
templateUrl: 'partials/pro.html',
controller: 'kontrola'
})
$ locationProvider.html5Mode(true)$ locationProvider.hashPrefix('!')
}])
代替:
.config(['$ locationProvider','$ routeProvider','$ provide',function($ locationProvider,$ routeProvider){
$ locationProvider.html5Mode(true)$ locationProvider.hashPrefix('!')
$routeProvider.when('/profile', {
templateUrl: 'partials/pro.html',
controller: 'kontrola'
})
以上是关于使用AngularJS和Express进行路由的主要内容,如果未能解决你的问题,请参考以下文章
请求新页面时如何将 AngularJS 路由与 Express (Node.js) 一起使用?
使用 Express/Passport、AngularJS 和 ensureLoggedIn 的身份验证和路由在“/”url 上不起作用