簡體   English   中英

適用於Express應用的Route 404.html

[英]Route 404.html for Express app

我已經看到很多解決此問題的文章,但似乎沒有一個對我有用,而且許多解決方案都使用不推薦使用的方法。

我已經設置了靜態文件目錄:

app.use(express.static(__dirname + "/public", {maxAge: 86400000*30 }));

然后,我在該公共目錄中有一個自定義的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');
});

http://expressjs.com/api.html#res.status

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM