You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NGINX自定义404页面图片加载失败问题排查求助

我来帮你搞定这个404页面图片加载失败的问题!核心问题出在相对路径让浏览器找错了图片位置,再结合你的NGINX配置,咱们有两种靠谱的修复方案:

方案一:修改HTML里的图片路径为绝对路径

你现在写的<img src="404.gif" />是相对路径,当用户访问http://localhost/main/error_page这类子路径时,浏览器会默认在当前路径下找图片,也就是请求http://localhost/main/404.gif,但你的图片实际存在/var/www/error/目录下,NGINX只配置了/404.gif的访问规则,自然匹配不上。

把图片路径改成绝对路径就解决了:

<img src="/404.gif" alt="not found" />

这样不管用户从哪个子路径触发404,浏览器都会直接请求http://localhost/404.gif,正好命中你NGINX里的配置,图片就能正常加载了。

方案二:优化NGINX配置(可选,配合绝对路径更稳妥)

你可以把404相关的资源(HTML和图片)统一放在一个location规则里,让配置更简洁,同时避免遗漏:

http {
    server {
        listen 80;
        server_name localhost;

        error_page 404 /404.html;

        # 匹配404.html和404.gif,统一指向错误页面目录
        location ~ ^/(404\.html|404\.gif)$ {
            root /var/www/error/;
        }

        location ~ ^/main/(data|test)$ {
            # 这里一定要补上你的实际业务配置,比如指向静态文件目录或者代理后端
            # 示例:root /var/www/main/;
        }
    }
}

另外注意,你当前的location ~ ^/main/(data|test)$块是空的,实际使用时必须添加对应的资源路径(比如root)或者代理规则,否则访问这些合法路径也会返回404。

最后别忘了做这两个检查

  • 确认/var/www/error/目录下确实有404.gif,并且NGINX进程有读取权限,用这个命令验证:
ls -l /var/www/error/404.gif
  • 修改配置后重启NGINX让新规则生效:
sudo nginx -s reload

内容的提问来源于stack exchange,提问作者Ican

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:49:20