Express 应用的路线 404.html
Route 404.html for Express app
我看过很多解决这个问题的帖子,但似乎没有一个对我有用,而且许多解决方案都使用已弃用的方法。
我已经设置了静态文件目录:
app.use(express.static(__dirname + "/public", {maxAge: 86400000*30 }));
然后我在 public 目录中有一个自定义 404.html 页面。现在,任何不正确的 URL 都应该被路由到那个 404.html 页面。我试过以下方法:
app.use(function(req, res, next){
res.render("404.html", { url: req.url });
});
但我收到回复:
Error: Cannot find module 'html'
我做错了什么,为什么这么简单的事情这么难?
在所有其他中间件和路由处理程序之后放置类似这样的内容:
app.use(function(req, res) {
res.sendFile(__dirname + '/public/404.html');
});
尝试将您的 express 版本升级到最新版本
已编辑(来自@mscdex 的更正版本)
app.get('/api', function(req, res) {
.....
res.status(404).sendFile(__dirname + '/public/404.html');
});
我看过很多解决这个问题的帖子,但似乎没有一个对我有用,而且许多解决方案都使用已弃用的方法。
我已经设置了静态文件目录:
app.use(express.static(__dirname + "/public", {maxAge: 86400000*30 }));
然后我在 public 目录中有一个自定义 404.html 页面。现在,任何不正确的 URL 都应该被路由到那个 404.html 页面。我试过以下方法:
app.use(function(req, res, next){
res.render("404.html", { url: req.url });
});
但我收到回复:
Error: Cannot find module 'html'
我做错了什么,为什么这么简单的事情这么难?
在所有其他中间件和路由处理程序之后放置类似这样的内容:
app.use(function(req, res) {
res.sendFile(__dirname + '/public/404.html');
});
尝试将您的 express 版本升级到最新版本
已编辑(来自@mscdex 的更正版本)
app.get('/api', function(req, res) {
.....
res.status(404).sendFile(__dirname + '/public/404.html');
});