我试图为503添加自定义错误页面。我所做的是。在nginx.conf文件中将以下行添加到服务器conf。
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /home/username/sites/myProject/current/errorPages;
internal;
}
当uwsgi关闭时显示自定义页面,但这并不是任何图像。我试图做很多我能想到的配置,但没有运气。有谁知道如何显示图像文件并为自定义错误页面启用css?
我将自定义错误页面放入/ home / username / sites / myProject / current / errorPages 和文件结构是..
errorPages/50x.html
errorPages/50x_files/50x.css
errorPages/50x_files/50x.js
errorPages/50x_files/image.png
答案 0 :(得分:14)
我遇到了同样的问题,并且设置nginx conf的工作方式是:
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /home/username/sites/myProject/current/errorPages;
}
location = /image.png {
root /home/username/sites/myProject/current/errorPages/50x_files;
}
然后简单地将图像引用为src =" image.png"。这同样适用于你的css和js!
编辑:我找到了一种让它适用于一堆文件的方法:
error_page 500 502 503 504 /errorPages/50x.html;
location /errorPages/ {
root /home/username/sites/myProject/current/;
}
这样,errorPages文件夹中的所有文件都可用(例如src =" /errorPages/image.png"),因为nginx将尝试匹配所有" / errorPages / .. &#34 ;.有必要删除" ="在"位置" (因为它不再完全匹配)和"内部;"在其中(因为其他资源将从html调用,而不是在内部由nginx调用)。
答案 1 :(得分:1)
您的图片/ css未显示/加载的原因是因为您正在使用collected
指令。 items.take(10)
指令指定给定位置只能用于内部请求,并且不可从外部访问或访问(即http://mysite/errorPages/500.html)。因此,为这些文件提供了404错误。
一些解决方法是:
删除内部指令
catch(:done) do
items.inject({items: [], budget: 100}) do |ledger, item|
remainder = ledger[:budget] - item.price
if remainder < 0
throw(:done, ledger)
else
ledger.tap do |this|
this[:items] << item
this[:budget] = remainder
end # tap just returns what is being tapped into, in this case, ledger
end
end
end
internal
作为错误页面。但是,这对您的图片或链接到您网页的其他文件不起作用。答案 2 :(得分:0)
这对我有用:
error_page 500 502 503 504 = @errorz;
location @errorz{
root /home/username/sites/myProject/current/errorPages;
try_files $uri /50x.html = 502 503;
}
答案 3 :(得分:-1)
我认为最好的方法是做以下事情:
inline CSS
Base64
执行此操作后,您可以将生成的Base64字符串嵌入到background-image
CSS规则中,如下所示:
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEADI.....==)
您也可以将字符串与<img>
标记一起使用,只需将其传递给src
属性,如下所示:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEADI.....==" />
这样您就可以保留internal
nginx规则。