我在路由/status和/status/:id时遇到了一些问题。我收到“无法获取/状态”错误消息
在angular中,我写道:
App.config(['$routeProvider', '$locationProvider', function($routeProvider,$locationProvider){
$routeProvider.when('/status', {
templateUrl: 'views/statusList',
controller: 'dailyStatusCtrl'
});
$routeProvider.when('/status/:oldDate', {
templateUrl: 'views/statusList',
controller: 'dailyStatusCtrl'
});
$routeProvider.otherwise({redirectTo: '/'});
$locationProvider.html5Mode(true).hashPrefix('!');
}]);
在nodejs方面,我使用jade并写道:
server.use(connRoute(function(router){
router.get('/', function (req, res, next){
console.log('/ router');
res.render('index');
});
router.get('/views/:view', function(req, res){
res.render(req.params.view)
});
router.get('status/:id', function (req, res, next){
console.log('status * router');
res.render('index');
});
router.get('*', function (req, res, next){
console.log('** router');
res.render('index');
});
}));
/status/:id的部分是一个测试。但没有用。我得到了信息:“无法为“/status”获取/status”,但它适用于“/status/somecontent”。
我的代码有什么问题?如何使用/status和/status/:id?
如果没有第二个路由器,我会得到“cannot get /status/somecontent”,但它可以为/status工作。
谢谢
编辑1:
我在node中编辑了路由,以:
server.use(connRoute(function(router){
router.get('/', function (req, res, next){
res.render('index');
});
router.get('/views/:view', function(req, res, next){
res.render(req.params.view)
});
}));
并添加connect-modrewrite:
server.use(modRewrite([
'^([^.]+)$ /index.html [L]'
]));
但重写规则是错误的。我无法重新加载仅主页(/)。任何其他页面都无法重新加载。还是顺序有问题?
这是真正的命令:
server.use(connRoute(function(router){
router.get('/', function (req, res, next){
res.render('index');
});
router.get('/views/:view', function(req, res, next){
res.render(req.params.view)
});
}));
server.use(modRewrite([
'^([^.]+)$ /index.html [L]'
]));
server.use(servStatic(__dirname + '/../logbook'));
任何想法的权利modRewrite规则?
1条答案
按热度按时间fiei3ece1#
如果没有modrewrite,它可以工作,如果你为每个url都有一个路由器条目。不要忘记使用“function(req,res,next)"。