В моем приложении node.js (с Express) у меня есть последнее условие else, чтобы перехватить неизвестные пути и ответить файлом с именем '404.html':
else if(req.url !== '/json' && req.url !== '/version' && req.url !== "/json/version"){
res.status(404).send('<script>location.href = "/404.html";</script>');
}
Это работает нормально, если, например, кто-то пытается получить доступ к неверному пути www.myApp.com/aaldkfjd
или www.myApp.com/aaldkfjd/jkjadklfja/dkjfakj
, который недопустим, поэтому он переходит в else и отправляет файл '404.html'.
но при проверке ответа сервера в клиенте я заметил, что это 304, а не 404.
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="Content-Type" content="text/html">
<title>My Awesome 404 page</title>
<link rel="stylesheet" type="text/css" media="all" href="/css/styles.css"/>
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon.ico">
</head>
<body style="text-align:center;">
<div id="loginDiv">
<h1 id="loginHeader">404...We don't know that route!</h1>
</div>
<img src="images/myImageMedium.png" alt="404 image">
</body>
</html>