当我在此之前看到此内容时,该服务器上的CF“浏览器”无法通过/CFFileServlet/_cf_image/_cfimg-...PNG
该框上的环回连接到URL。确切的原因和解决方案将取决于您的 Web 服务器、站点配置、SSL、防火墙、路由、DNS 都是如何设置的。
您是否在 CF Admin 中查看了带有图像错误的请求的错误日志?如果您在那里没有任何线索,那么帮助诊断失败的一种方法是将您的<cfimage action="writeToBrowser"
代码包装在 a <cfsavecontent>
or<cfxml>
标记中以提取写入的临时图像的 src URL,然后查看如果您尝试点击相同的 URL 会得到什么结果通过cfhttp
来自服务器的调用 - 您应该遇到 cfdocument 遇到的相同问题,但您将能够转储任何错误以进行故障排除。
根据您的情况,以下方法之一应该有效:
- 如果 CF 浏览器无法解析自己的主机名,则将该站点的域添加到服务器的本地 HOSTS 文件中;
- 如果从盒子本身导航到而不是从外部世界导航到时使用不同的 vhost / IIS 站点,则确保 /CFFileServlet/ 映射在该站点上仍然可见;
- 如果 cfdocument/cfhttp 出现 SSL 错误,即如果您的站点正在使用(或将 http 重写为)https 来处理这些图像请求,那么请确保您的站点的证书受到您的 CF 密钥库的信任;
- 检查您的防火墙配置是否阻止这些内部请求。
如果您无权解决上述环境类型问题,其他较小的解决方法:
file:///
a)仅与 cfdocument 一起使用时,将 src URL 从相对 URL 重写为绝对URL。
b) 如果localhost
在您的服务器上可见到您的站点(端口 80 或其他)的映射,那么您可以尝试重写 src URL 以使用它而不是 FQDN。
c) 不使用 writeToBrowser,而是将 cfimage 输出写入您可以证明可与 cfdocument/cfhttp 一起使用的路径,并输出您自己的 img 标签以从该路径提供图像。
根据我的经验,您会看到很多关于 cfdocument 和图像路径以及使用的帖子localUrl=true
——但是在涉及 cfimage writeToBrowser 的地方,我总是发现我需要使用localUrl=false
和依赖绝对 URL。