VP导航 VP导航
首页 提交网址

资讯文章 资讯 · NEWS

把目录站装进手机桌面:PWA、service worker 和 manifest 该怎么收着用

2026-10-23 约 1,724 字 预计阅读 4 分钟 yiyunkj

把目录站装进手机桌面:PWA、service worker 和 manifest 该怎么收着用 把

导航站这几年有个明显变化:越来越多的站开始提示「添加到主屏幕」。加了之后图标在桌面上,点开是全屏的,没有地址栏,跟个 App 差不多。技术上门槛不高,一个 manifest 文件加一个 service worker 就能跑起来。但我见过好几个站加上去之后出问题,出的问题还都不是安装那一步,而是缓存那一步。

目录站 PWA 与 service worker 配置要点示意图

图片来源:网络,版权归原作者所有,侵权请联系删除

先想清楚你要的是图标还是离线

这两件事经常被人捆在一起做,其实可以拆开。只要一个 manifest 文件(Web App Manifest),浏览器就允许把站点添加到桌面,图标、名称、启动画面都能定,不需要 service worker 参与。真正需要 service worker 的是离线可用和缓存控制,也就是「断网还能打开」。

目录站想清楚这点很重要。如果你的条目页必须实时(比如价格、库存、站点是否失效),做离线缓存反而是给自己找麻烦;如果只是想让用户从桌面点进来,那 manifest 就够了,风险小得多。

最容易犯的错:把 HTML 也一起缓存了

service worker 最常见的新手配置是 Cache First,所有请求先查缓存。静态资源这么配没问题,但 HTML 也这么配,就会出两件事:用户打开的是三天前的列表页,搜索引擎拿到的是缓存里的旧副本,新条目迟迟不出现。

比较稳的分工是这样:

资源类型策略说明
带 hash 的 JS/CSS/字体Cache First内容变了文件名就变,缓存一年也没关系
站点图标、SVGCache First同上,属于几乎不变的资源
列表页、条目页 HTMLNetwork First 或不缓存要的是新鲜度,别拿速度换
接口返回的 JSONNetwork First,超时回落断网时给旧数据,有网时一定要新的

还有两个坑,代码层面看不出来,上线一段时间后才暴露。一是缓存名(cacheName)没跟着改,浏览器认为 sw 文件没有变化,旧缓存一直不失效;二是新 sw 安装后没有调用 self.skipWaiting() 和 clients.claim(),用户要关掉所有标签页才切换过去,你会收到一堆「我这儿还是旧的」反馈。另外别缓存非 200 的响应,404 和 302 进了缓存就很难清干净。

scope 和注册时机

service worker 只能控制它注册路径下面的页面。很多人把 sw.js 放在 /static/ 或者 /js/ 下面,结果它只能管住那个目录,首页根本不受控制。放在站点根目录是最省事的选择。

注册时机建议放在页面 load 之后,别在 head 里抢首屏带宽。代码大概是这个样子:

if ('serviceWorker' in navigator) {
  window.addEventListener('load', () => {
    navigator.serviceWorker.register('/sw.js');
  });
}

sw.js 这个文件本身一定要设成不缓存或者是极短缓存,否则浏览器拿不到新版本,你的更新永远推不下去。这一点在 CDN 后面尤其容易漏。

manifest 里几项和搜索有关的内容

manifest 里 name、short_name、icons(至少准备 192 和 512 两档,512 那张标 purpose: "any maskable" 免得被系统裁掉)、start_url、display 是基本项。start_url 别填一个带 noindex 的页面,也别填一个会 302 的地址,否则从桌面点进来第一跳就浪费掉。

有人会在 start_url 后面加 ?utm_source=pwa 之类的参数来区分来源,这没问题,统计上很好用,但记得 canonical 仍然指向干净的地址,别让这个参数版本单独被索引。

它给我带来排名了吗

没有。和 AMP 一样,PWA 从来不是排名因素,谷歌也没说过「装到桌面」会给什么加成。它的价值在复访:桌面上有个图标,用户点开的成本比打开浏览器输网址低很多,这个收益对导航站尤其真实,因为导航站靠的就是日常反复访问。

所以我的建议是分三档做:只想有图标,就加 manifest;想要弱网体验好一点,加一个只缓存静态资源的 sw;确实有离线场景(比如机场、地铁里查收藏的站点),再考虑缓存 HTML,但要配好缓存版本和清除入口。别一上来就全量离线化,那套东西的维护成本比想象中高。

本文标签 PWA应用 Service Worker manifest配置
← 上一篇 服务器日志怎么读:从一条记录里看出蜘蛛到底爬了什么 下一篇 → CDN 缓存时间怎么定:max-age、s-maxa

— 本文完 —

提交网址

发现好站,欢迎自荐收录

站内搜索

站点统计

  • 今日审核0
  • 已收录站点3744
  • 正常访问3736
  • 失联站点8
  • 累计访问83

网站分类

  • AI工具 0
    AI对话0 AI绘画0 AI写作0 AI编程0 AI音视频0 AI办公效率0
  • 开发编程 0
    前端开发0 后端开发0 移动开发0 开源与代码托管0 数据库0 开发文档与教程0
  • 设计素材 0
    UI设计0 图标素材0 免费图库0 字体下载0 配色工具0 设计模板0
  • 站长工具 0
    网站统计0 SEO工具0 域名与主机0 收录提交0 建站程序0 运维监控0
  • 学习教育 0
    编程教程0 语言学习0 职业技能0 公开课与慕课0 考试题库0 中小学教育0
  • 生活服务 0
    交通出行0 外卖点餐0 房产租房0 医疗健康0 政务办事0 快递物流0
  • 影音娱乐 0
    影视观看0 音乐音频0 游戏资源0 短视频直播0 小说阅读0
  • 电商购物 0
    综合商城0 比价工具0 导购返利0 二手交易0 团购优惠0
  • 综合其他 1
    实用工具0 资源合集0 小众站点0 个人博客0 论坛社区0
  • 新闻资讯 0
    科技资讯8 财经媒体1 行业动态0 社会热点0 综合门户0
  • 资讯文章 150

最新收录

  • Kimi
  • 通义千问
  • 车机屋-专业车机系统研究平台,海量正
  • 阿里巴巴矢量图标库
  • DeepSeek
  • 39健康网
  • 韵达快递
  • 飞猪

浏览排行

  1. 满分作文网 6
  2. Let's Enhance 3
  3. 淘菜菜 3
  4. MasterClass 3
  5. TypeScript 中文网 3
  6. Zhengziying 3
  7. 得意生活 3
  8. 镇江网友之家 3

联系我们

bQ:12345678

电话:400-8888-888

邮箱:admin@example.com

时间:09:00-21:00

友情链接

车机屋·焊锡条·探兔AI导航·静电测试仪·大学生联盟

关于我们|广告合作|隐私条款|网站地图

原ICP备00000000号-1,@2026

由 Z-BlogPHP 驱动