#html #nginx #nginx-config
#HTML #nginx #nginx-config
Вопрос:
Я пытаюсь создать пользовательскую страницу 404.
Вот мой 404.html:
<html>
<head>
<meta charset="UTF-8">
<title>Not Found</title>
</head>
<body>
<div style="...">
<div style="...">404</div>
<div style="...">Page not found</div>
<img src="404.gif" alt="not found" />
</div>
</body>
</html>
это работает (почти), но я всегда получаю ошибку «Не найдено» при попытке загрузки 404.gif
Вот моя конфигурация nginx (хочу сделать доступными только localhost/main/data
и localhost/main/test
пути):
http {
server {
listen 80;
server_name localhost;
error_page 404 /404.html;
location = /404.html {
root /var/www/error/;
}
location /404.gif {
root /var/www/error/;
}
location ~ ^/main/(data|test)$ {
}
Когда я пытаюсь добраться до любой страницы, такой как http://localhost/main/error_page
server, возвращает пользовательскую страницу 404 без gif и ошибок GET http://localhost/main/404.gif 404 (Not Found)
.
Как загрузить мой gif, какой путь мне нужно указать в html или как изменить конфигурацию?
Комментарии:
1. проверьте ошибку
/var/log/nginx/errors.log
, она сообщит вам, откуда она пытается извлечь изображение, начните отладку оттуда
Ответ №1:
используйте правильный путь к изображению в теге src изображения
<img src="../somefolder/somefoler/404.gif" alt="not found" />
Ответ №2:
нужно перенаправить любой запрос этого gif следующим образом
location ~* /(.*)404.gif$ {
try_files $uri $uri/ /404.gif;
}