节点js 404和angular url刷新冲突

时间:2015-04-20 07:34:08

标签: javascript angularjs node.js nodes angularjs-routing

我正在创建一个Nodejs和angular js app。当有人在网址上输入并输入网页时,我不得不加载页面。它工作正常,直到我还制作了一个脚本重定向到404错误页面。现在问题在于两个脚本只有一个标准可行。当404重定向工作时,我无法访问在浏览器上键入url的页面,当它工作时,404页面被重定向到索引。 HTML。

以下是我使用过的两个脚本。

app.use(function(req, res) {
    res.render('404', {layout: false, title: '404: File Not Found'});
});

app.use('/*', function (req, res) {
   res.sendFile(__dirname + '/public/index.html');
});

我在这里做错了什么。除此之外我还有我的一般路线,当我从导航中点击它时,它在角应用程序中工作正常。

3 个答案:

答案 0 :(得分:5)

  

将404处理程序代码放在最后(必须是最后一条路径

使用这样的代码:

app.use('/*', function (req, res) {
   res.sendFile(__dirname + '/public/index.html');
});

app.use(function(req, res) { //put this at end
    res.status(404);//add this line for setting 404 status
    res.render('404', {layout: false, title: '404: File Not Found'});
});

答案 1 :(得分:1)

404路线必须是最后一条路线。

答案 2 :(得分:0)

将它放在404路线之前:

app.use('/reload/reload.js', express.static('node_modules/reload/lib/reload.js'));