nginx - 自定义404 - 未找到css / js

时间:2016-06-16 13:25:02

标签: javascript css nginx

我有一个运行

的nginx服务器
my_class& d=a.test(b)

只要网址为“http://domain/not_existing_page.html”,错误页面就会很好地显示。 但是,如果它像“http://domain/subpath/not_existing_page.html”,则不会检索我的CSS和JS。

确实,在我的404.html中链接

error_page 404 /404.html;
location = /404.html {
        root /usr/share/nginx/html;
        internal;
}

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

无效,因为浏览器会查找“http://domain/subpath/css/custom.css”。

有没有办法配置nginx,以便我的404.html总是从/?获取我的css和js?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您需要使用资源的绝对路径设计错误页面,并可选择为其添加唯一的前缀,以便为它们设置正确的根路径。

示例:

在404.html中

<link href="/error-pages/css/custom.css" rel="stylesheet">

在nginx配置

location ~ "^/error-pages" {
        root   /usr/share/nginx/html;
        internal;
}

如果错误页面的css / js资源放在全局文档根目录中,那么使用像

这样的绝对路径就足够了
<link href="/css/custom.css" rel="stylesheet">