【发布时间】:2015-01-03 12:30:07
【问题描述】:
我已经看到很多解决这个问题的帖子,但似乎没有一个对我有用,而且许多解决方案都使用了已弃用的方法。
我已经设置了静态文件目录:
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'
我做错了什么,为什么这么简单的事情这么难?
【问题讨论】:
-
Express 希望有一个适用于所有文件类型的渲染器,即使是像 HTML 这样的静态文件。有关更多信息,请参阅此答案:stackoverflow.com/a/4531225/502126
-
如果您使用404.html作为模板,它是什么模板? ejs?玉?车把?还有什么?或者它真的不是模板,如果没有匹配的路由处理程序,您只想显示静态内容?
-
@mscdex 只是一个普通的 html 页面,里面没有模板或动态内容。不使用翡翠或ejs或类似的东西。同样,我的应用程序也将 index.html 作为常规 html 页面提供服务,因为 Express 指向公用文件夹。
标签: javascript html node.js express