Nginx 错误页面静态内容未加载

Nginx 错误页面静态内容未加载

运行 Nginx 1.4.1 我有以下配置,以防我的后端出现问题,显示自定义错误页面。页面显示,但自定义字体和图像未加载。我的自定义错误页面 (50x.html) 位于 /usr/share/nginx/html/。子文件夹 img 和 fonts 中的静态内容。

从我的浏览器中,我可以看到静态内容 URL 已附加到我当前的 URL,这使它们不可用。例如,如果我正在浏览 www.domain.com/user/account,Nginx 将尝试从服务器加载内容:

URL 
/user/account/img/logo.png
/user/account/img/main.jpg
/user/account/img/footer.png
/user/account/fonts/miso-regular-webfont.ttf

而不是来自 sr/share/nginx/html/img/

以下是配置部分:

error_page 324 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/html;
                allow all;
                internal;
    }

谢谢你的灯。

编辑1:

谢谢 Alexey,路径现在正确了,但图片仍然无法显示。当后端第一次出现故障时,Nginx 会尝试从 Apache 获取图片,而 Nginx 应该为整个维护页面提供服务,而不是依赖于后端。为什么会出现这种情况?当后端出现故障时,我不能依赖它,即使是维护页面。

谢谢。

答案1

通过以下方法解决:

error_page 324 500 502 503 504 = @maintenance;
location @maintenance {
        root /usr/share/nginx/html;
        try_files $uri /50x.html =503;
}

相关内容