(使用MEAN和UI路由器)
以下代码为定义的路由发送json响应。使用UI路由器呈现模板时,此工作正常;但是,如果我重新加载页面,因为响应只包含json,我留下的是一个没有html的空页面,只有json响应。
router.get('/posts/:post', function(req, res, next) {
req.post.populate('comments', function(err, post) {
if (err) { return next(err); }
res.json(post);
});
});
假设这是一个标准问题,当重新加载页面并使用json响应响应时,如何才能最好地允许此页面res.render('index')?我应该吗,
感谢您的回复,不确定此类问题的惯例是什么!
答案 0 :(得分:0)
由于许多在线示例具有不同的目录结构,我花了一些时间才找到一个可行的解决方案。我在路由的末尾放置了一个catch,这样对于任何UI路由器状态的url请求都不会被404满足,而是总是返回index.html文件。
app.all('/*', function(req, res, next) {
// Just send the index.html for other files to support HTML5Mode
res.sendFile('index.html', { root: __dirname });
});
然后我在我的快速路线上添加了前缀,例如/ api / posts /:post等。显然,快速路线不应与任何角度定义的路线发生冲突。感谢NormySan on reddit告诉我这件事。