<link rel='stylesheet' href='/static/app.8f3c2a.css'>
Cache-Control: no-cache, must-revalidate

改了按钮颜色重新发布,微信里打开还是旧的蓝色,强刷、退出微信重进都没用,同一链接在系统浏览器已经是新颜色,持续了 7 天。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:微信安卓用 X5 内核,对 css 和 js 有独立缓存,URL 不变就按本地缓存返回。文件名没带 hash,服务端也没给 html 设 no-cache。

「微信 X5 缓存」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。

把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

处理上按这个顺序:静态资源文件名带内容 hash 每次发布都变;html 响应加 Cache-Control: no-cache;微信里用 debugx5 清一次缓存 确认新文件已生效;发布后重新进入页面 看请求的是不是新文件名。

确认没问题再收工,发布后微信里重新打开就是新颜色,Network 里请求的是新的 hash 文件名。

作者 9823189