我在路由/状态和/ status /:id方面遇到了一些问题。我收到“无法获取/状态”错误消息
在角度我写了:
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 / somecontent”。
我的代码有什么问题?我如何使用/ status und / status /:id?
如果没有第二个路由器,我会得到“无法获取/状态/某些内容”,但它正在为/ status工作。
由于
修改1:
我已将节点中的路线编辑为:
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规则的任何想法?
答案 0 :(得分:0)
如果你为每个url都有一个路由器的条目,那么没有modrewrite就可以工作。不要忘记使用“功能(req,res,next)”。
server.use(connRoute(function(router){
router.get('/', function (req, res, next){
res.render('index');
});
router.get('/status', function (req, res, next){
res.render('index');
});
router.get('/status/:olddate', function (req, res, next){
res.render('index');
});
router.get('/views/:view', function(req, res, next){
res.render(req.params.view)
});
}));