我正在创建一个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');
});
我在这里做错了什么。除此之外我还有我的一般路线,当我从导航中点击它时,它在角应用程序中工作正常。
答案 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'));