代理服务器上确实存在一个徽标文件,Squid 也能读取它,但浏览器仍然显示损坏的图片。文件权限无法修正一个发往错误 URL 的请求。

当自定义错误模板包含 src="images/logo.png" 时,浏览器会依据文档的 URL 上下文来解析该引用。它不会去 Squid 服务器的磁盘上寻找附近的 images 目录。把文件放在另一个 Web 服务器的文档根目录下,也不会让 Squid 自动提供它。

在 Squid 5–7 中,error_directory 选择自定义错误模板;icon_directory 指明图标存储位置。Squid 的内部图标 URL 使用 /squid-internal-static/icons/ 路径。请遵循已安装版本的资源布局,而不要把 Unix 文件系统路径当作 HTML 图片地址。

检查浏览器实际发出的图片请求。它的主机名、路径、状态和所选路由能说明浏览器是向 Squid 请求内部资源、联系了另一个图片主机,还是请求了被拦截网站上不相关的路径。

如果图片位于已批准的内部 Web 服务器上,请使用其可访问的资源 URL,并考虑访问规则。如果它属于 Squid 的内部资源,请确认已安装资源的位置以及处理这些请求的监听程序。

即使没有图片,也要让错误信息保持可读。一个依赖另一个失败网络请求的诊断页面,可能会掩藏读者真正需要的解释。

相关文章