是否可以将nginx配置设置为如下所示:
我的网站根目录将位于路径中:/ var / www / html
是否可以在其他路径中放置例如401,404等错误页面,例如:/ some / other / path
我设法让这个工作(在网站根目录之外加载错误页面)使用这个:
error_page 404 /custom_404.html;
location = /custom_404.html {
root /path/to/my/root/for/error/pages
internal;
}
现在这是问题...我的404页面可能包含一些图像和css文件,当它显示我的404页面时,css和图像根本没有加载(如果我把css和图像放入错误页面/无功/网络/ HTML)。
我想将错误页面中的错误页面的css和图像保存在错误页面的相同文件夹中...任何人都可以指出我应该如何配置它,是否可能或者指向我某处,因为我正在寻找几天关于它。
非常感谢。
答案 0 :(得分:1)
假设您的custom_404.html如下所示:
<html>
<head><title>Oops!</title></head>
<body>
<h1>404</h1>
<img src="oops.gif" />
</body>
</html>
将其更改为:
<html>
<head><title>Oops!</title></head>
<body>
<h1>404</h1>
<img src="/error/oops.gif" />
</body>
</html>
然后在.conf文件中:
error_page 404 /error/custom_404.html;
location /error/ {
root /path/to/error/files;
}
答案 1 :(得分:0)
您可以拥有这样的后备位置:
location / {
root /normal/path/to/html;
try_files $uri @fallback;
}
location @fallback {
root /path/to/error/files;
}
答案 2 :(得分:0)
您的问题是internal
规则,该规则限制仅从内部请求访问的位置。为了保留internal
Nginx规则,您可以执行以下操作:
inline CSS
Base64
执行此操作后,您可以将生成的Base64字符串嵌入到background-image
CSS规则中,如下所示:
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEADI.....==)
您也可以将字符串与<img>
标记一起使用,只需将其传递给src
属性,如下所示:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEADI.....==" />
否则,如果您仍想使用外部内容,则必须从专用于Nginx配置中的错误页面的位置删除internal
规则。