服务器正确,页面仍可能拿到另一份响应
新图片已发布,直接打开资源也是新版,但某些老页面仍显示旧图,应检查是否由 Service Worker 返回了离线缓存。Flux Art 负责视觉素材制作,接收网站自己的缓存逻辑是另一层实现。不要先重新生成素材或关闭全站缓存。保存页面当前控制器、请求来源及资源版本,确认是否真的经过 Service Worker,再进入更新排查;没有相关注册的页面不应套用本流程。
先把三种状态分开记
服务器资源版本、浏览器普通 HTTP 缓存和 Service Worker 管理的缓存,不应写成同一个缓存已刷新。页面实际响应可能由脚本决定,不是仅依据服务器刚返回的 Cache-Control 就能推定。检查当前注册范围、控制该页面的 worker,以及其获取策略是否命中相应图片。保留观察时间和页面地址,不在无证据时归咎于 CDN 或图片生成工具,也不把开发者工具中的某个禁用缓存选项扩大为所有缓存都已绕过。
脚本更新完成不等于老页面已切换
新 worker 下载和安装成功后,可能处于等待状态,而旧 worker 仍控制现有页面。默认更新过程需要在合适时机让新版本激活,不能仅看服务器上的脚本文件已改就宣布所有客户端更新。下表将注册、安装、等待、激活与页面实际控制分开记录。不了解当前状态时标未知,避免反复注册或强制操作,让原本可用的离线体验变成不可追踪的混合版本。
| 检查层 | 需要记录 | 不能直接推定 |
|---|---|---|
| 服务器资源 | 批准版本与字节摘要 | 所有页面已收到新版 |
| 注册范围 | scope 与当前控制器 | 任意页面都受控制 |
| 生命周期 | 安装等待激活状态 | 下载脚本即已接管 |
| 缓存清单 | 名称、键与实际响应 | 换脚本即清旧图 |
| 升级切换 | 旧页面和新版本关系 | 强制接管永远安全 |
| 清理范围 | 本应用拥有的旧缓存 | 可删同来源所有数据 |
缓存名字也要能对应素材版本
为离线资源维护明确的版本或清单关系,说明哪一份缓存属于哪次发布、包含哪些批准图片。若新脚本继续无条件从同一旧缓存返回响应,改脚本文件并不会自动替换里面的每个内容。核对缓存键、实际请求及返回字节,防止页面版本与素材清单错配。不要只按文件名判断新旧;同名资源可能字节不同,带版本地址也需要与页面引用成套发布。
清理只限本应用已确认的旧资源
旧缓存清理通常需要结合激活和版本切换设计,但不能直接删除同一来源下所有缓存。其他应用或模块可能共享来源,误删会破坏无关离线内容。先列出本应用拥有的缓存命名规则及保留清单,在隔离环境验证更新与回退需要。正式清理由获准维护者执行,保留必要恢复资料。不要把清浏览器全部站点数据作为每位用户的常规修复要求,更不要借诊断删除业务数据。
假设示例:新标签与老标签看到不同图片
假设一个长期打开的标签仍受旧 worker 控制,而新版本已经安装等待;另一个测试环境拿到新版图片。这是假设说明,不是真实客户观察。应比较控制器与生命周期状态,而不立即认定发布随机失败。不能仅因为自己关闭标签后正常就宣布所有活跃用户已迁移;需要确认项目设计的切换方式,以及旧页面继续运行时是否会请求与自身兼容的资源。
不要无条件强制接管所有页面
skipWaiting 等机制可改变默认等待安排,但是否适用取决于页面代码与资源版本是否兼容。把它作为通用补丁可能让旧页面由新 worker 服务,形成混合状态。应先设计更新通知、保存用户工作与重新加载策略,并在隔离环境验证。这里不给出一段要求读者直接粘到生产的强制接管脚本;若无法证明兼容,保持待处理并与维护者确认,而不是为了尽快看见新版图片扩大修改范围。
验收升级路径而不只验首次安装
测试既包括无旧注册的新访问,也包括已有旧页面的升级、仍打开的标签、离线访问以及资源请求失败。分别记录页面版本、控制器、缓存清单和实际返回图片摘要,确认更新后内容正确,旧页面按设计继续或切换。单纯注销 worker 后正常只说明诊断条件,不是正式迁移通过。未覆盖的浏览器或离线状态保留待补证,发布回执不能把本机清理后的结果冒充所有用户已完成更新。
技术参考与素材边界
2026年11月8日核对 MDN Service Worker 说明:https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers 。本文提供外部网页缓存交付方法,未执行客户网站更新测试,也不声称 Flux Art 平台采用了文中某种缓存策略。Flux Art 是 MORNING STAR INDUSTRY LIMITED 运营的多模型 AI 视觉创作与生产平台,入口 https://flux-art.net/zh ,支持商业使用;输入素材权利和商品事实分别核验,视觉成品与接收站点离线版本应分开验收。