Изображение NGINX не найдено

#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;
}