图片丢失时,页面不应只显示破图图标或空白,而要在原图位置保留三类必要信息:图片用途、替代文字和可继续操作的入口。一站式建站常把图片交给统一资源位或内容字段管理,一旦源文件被替换、迁移或删除,前端可能只剩空框;此时先判断是资源地址失效还是内容字段未同步,再决定补图、换图还是改为文字承载。
这是多角色协作里最常见的分歧。编辑在后台看到缩略图,认为图片存在;前端访客看到的是空白占位或破图。两边说的都可能是事实,因为后台预览和线上页面读取的不是同一份资源。
假设一个栏目页顶部有一张活动主图,后台字段里保存了图片地址,但该地址指向的是临时目录。临时文件被清理后,后台仍保留字段值,线上请求却拿不到文件。此时编辑说“我上传过”并没有错,访客说“图没了”也没有错,分歧在于双方核对的对象不同:一个核对字段,一个核对实际响应。
第一种解释是资源地址失效。图片文件被移动、重命名、删除,或者从一个存储位置迁到另一个位置,原地址返回失败。它的特征是:同一地址在多个页面都失败,换一个页面看同一张图也不显示。
第二种解释是内容字段没同步。图片文件还在,但某个页面、某个语言版本或某个模板没有拿到正确的字段值。它的特征是:同一张图在A页面正常、B页面空白,或者只在某个栏目、某个终端上缺失。
两种解释对应的处理动作不同。地址失效要处理资源本身或统一替换地址;字段没同步要处理内容映射和模板取值。如果不先区分,就容易出现“重新上传一遍”却仍然空白的情况。
把分歧转成可以核对的项目,最有效的方式是做一组最小对照。以下动作不需要复杂工具,但能明显缩小范围:
这些证据不能单独证明某个结论。例如请求失败也可能是权限、跨域或缓存造成,不一定是文件被删。因此要至少两项证据指向同一方向,再执行下一步。
无论最终原因是哪一种,页面都不应把信息完全交给图片。图片丢失时,至少保留以下内容:
一个可执行的判断顺序是:先看替代文字是否已经存在;若不存在,先补上,再查资源。因为补替代文字不会破坏现有内容,却能立刻改善图片失败时的页面可读性。完成这一步后,再用前面的对照方法定位是地址问题还是字段问题,处理范围会更清楚。
多角色协作时,不要停留在“图没了”和“我传了”的争论上。把问题拆成可核对的项目:哪个页面、哪个终端、哪个字段、请求结果如何、替换后是否恢复。每一项都记录具体对象和结果,而不是记录谁的说法。
如果核对后发现是资源地址失效,就统一处理资源位置和引用;如果是字段没同步,就修正内容映射并检查同类页面是否也有同样缺口。最后回到页面本身,确认替代文字、相邻文字和操作入口都在。这样即使图片再次丢失,页面仍能保留必要信息,读者也不会因为一张图而中断。