You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Safari中PWA仍加载旧index.html的问题排查咨询

PWA主屏幕添加后加载旧index.html导致白屏的排查方案

问题背景

部署PWA后出现偶发但用户持续遭遇的“白屏死亡”现象,触发Uncaught SyntaxError: Unexpected token '<'错误,疑似缓存问题。已通过以下步骤稳定复现:

  • 将PWA添加至主屏幕
  • 打开该PWA
  • 在/var/www/my-server目录下修改index.html,使其指向哈希错误的.js文件
  • 重新打开PWA时,仍加载旧的index.html文件
  • 清理iPhone的Safari缓存后问题依旧

当前环境:使用Cloudflare服务,未配置任何Service Worker


排查步骤

一、Cloudflare缓存验证

  • 检查缓存规则:登录Cloudflare后台,进入对应域名的「缓存」→「缓存规则」,确认是否存在针对index.html的缓存策略,比如过长的TTL设置、「始终在线」等强制缓存功能。
  • 手动刷新Cloudflare缓存:在「缓存」→「配置」中点击「清除缓存」→「清除全部缓存」,之后测试是否加载新的index.html。
  • 查看响应头标识:用浏览器开发者工具Network面板查看index.html的响应头,检查CF-Cache-Status字段,HIT表示命中Cloudflare缓存,MISS则是回源获取。

二、服务器端缓存配置检查

  • 查看服务器缓存头:检查Nginx/Apache等服务器的配置文件,确认index.html对应的Cache-Control、Expires响应头是否设置了过长的缓存时间(比如max-age=86400会让浏览器缓存24小时)。
  • 验证服务器文件更新:直接通过服务器IP访问http://<服务器IP>/index.html,确认返回的是修改后的内容,排除部署未同步的问题。

三、iOS主屏幕PWA的特殊缓存处理

  • iOS主屏幕PWA有独立缓存池,清除Safari缓存无效,可尝试:
    • 删除主屏幕上的PWA图标,重新从Safari添加;
    • 在Safari中打开PWA网页版,下拉触发硬刷新后,再切换到主屏幕PWA。
  • 检查manifest.json:确认start_url是否正确,是否带有版本参数(如?v=1.0.0),避免缓存旧的启动路径。

四、浏览器缓存强制验证

  • 开启开发者工具的「禁用缓存」选项(Network面板),重新加载PWA网页版,确认是否能获取新文件。若可以,说明是浏览器/系统层缓存问题。
  • 检查ETag/Last-Modified响应头:确认服务器是否正确返回这些资源标识,浏览器依赖这些字段判断资源是否更新。

内容的提问来源于stack exchange,提问作者Zanko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:50:32