Я видел много сообщений, занимающихся этой проблемой, но никто не работает для меня, и многие решения используют устаревшие методы.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'
Что я делаю не так и почему такая простая вещь, так трудно?
Экспресс ожидает наличия средства визуализации для все типы файлов, даже статические, такие как HTML. См. Этот ответ для получения дополнительной информации: http://stackoverflow.com/a/4531225/502126 –
Если вы используете 404.html в качестве шаблона, какой шаблон? EJS? нефрит? рули? Что-то другое? Или это действительно не шаблон, и вы просто хотите отображать статический контент, если никакой обработчик маршрута не соответствует? – mscdex
@mscdex Это просто обычная html-страница, без шаблона или динамического содержимого. Не использовать нефрит или ejs или что-то в этом роде. Точно так же мое приложение также загружает index.html как обычную страницу html, потому что Express указывает на общую папку. – Coop