排查图片内容加载差异,核心是固定同一张图片、同一网络环境和同一浏览器版本,分别记录“请求是否成功、返回内容是否一致、渲染结果是否相同”,再把差异定位到网络、缓存、权限或页面嵌入方式上。多人协作时,把每次观察写成可复核的记录,比口头描述“我这边能显示”更有效。
图片加载差异可能来自不同环节,不能一看到空白就归因于图片失效。可以按下面顺序逐层检查:
如果状态码为 200 但页面仍不显示,重点转向渲染层和权限层;如果状态码为 403、404 或 302,重点转向请求层和访问权限。这里的状态码只是判断线索,不同站点的返回策略可能不同,需要结合响应内容确认。
多人协作返工多,往往是因为记录里缺少可复现条件。建议每位参与排查的人按固定字段提交一条记录:
<img> 的 src 路径。把“能显示”和“不能显示”的记录并排比较,通常能快速看出差异集中在登录状态、网络出口还是浏览器缓存。若两边条件完全一致却结果不同,再考虑 CDN 节点、代理或服务端灰度返回等可能性。这些属于可能原因,只有通过多次对照和响应内容才能确认。
缓存会让同一地址在不同人那里返回不同版本。排查时可以先用无痕窗口或禁用缓存后刷新,再对比正常窗口的结果。若禁用缓存后一致,说明差异很可能来自本地缓存或中间缓存;若仍不一致,继续检查请求头和响应头中的缓存相关字段。
懒加载则容易造成“截图时没加载、滚动后又出现”的假差异。检查图片元素是否带有 loading 属性、是否由脚本在进入视口后替换 src。验证方法是滚动到图片位置后等待渲染,再截图对比。若滚动前空白、滚动后正常,应把结论写成“懒加载触发时机差异”,而不是“图片链接失效”。
同一张图片,未登录用户看不到、登录用户能看到,通常与访问权限有关。可以让未登录和已登录两种状态各访问一次图片地址,比较返回内容是图片还是登录跳转。若返回内容不同,说明差异来自权限而不是图片文件本身。
另一种情况是页面能加载图片,但其他站点引用同一地址时失败。这可能是来源校验或防盗链策略导致。判断方法是查看请求头中的来源信息,并对比同源访问与跨源访问的响应。这里只把来源限制列为可能原因,具体规则要以实际响应为准,不要凭经验断言。
排查完成时,至少应满足以下条件:同一图片在约定环境组合下能稳定复现结果;差异原因能对应到具体请求、响应或渲染记录;修复或调整后,由另一位同事按同样步骤复核一次。若差异只出现在个别设备且无法复现,应记录为待观察项,而不是直接判定为已解决。
下一步可以建立一份最小对照表:固定一张问题图片、两种登录状态、两种网络环境,各采集一次 Network 记录。用这张表交付,比在聊天里反复描述现象更省返工。