更新图标后部分页面显示的还是旧图标,位置也偏了半个格子。乍看像缓存或者权限的锅,追下去往往不是。
.icon { background: url('/img/sprite.v2.png') no-repeat; }
.icon-a { background-position: -32px 0; }
追下去是这么回事:样式里坐标按新图改了,但旧图仍被缓存,两者不匹配。
碰到「雪碧图错位」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。
先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
改完隔一天再看一次,当场正常不代表能稳住。
具体做法是,给雪碧图加版本哈希;同步更新坐标;刷新节点缓存。
验收就看一点,图标显示与位置均正确,无错位与旧图。