我正在构建一个MEAN应用程序,Angular正在处理客户端定义的任何路由,例如'/ profile','/ stream'等。
因为我在Angular中使用HTML5Mode,所以我必须将以下内容添加到我的快速配置中,以允许访问干净的URL并从浏览器URL栏输入:
app.all('/*', function (req, res, next) {
res.sendfile('views/dashboard.html', { root: __dirname });
});
然而,这现在干扰了我的API,并且任何API调用都返回空白,因此,例如,如果我访问应返回当前用户详细信息的JSON响应的users / active / profile,浏览器会将您重定向到主页。
答案 0 :(得分:2)
Express将按照您声明的顺序处理请求URL(路由),因为*
是您将此代码移动到路径末尾所需的所有其他先前路由声明的例外:
/** this needs to be your last route **/
app.all('/*', function (req, res, next) {
res.sendfile('views/dashboard.html', { root: __dirname });
});