#说明 jsDelivr 提供的全球 CDN 加速,CDN 的分流作用不仅减少了用户的访问延时,也减少的源站的负载。但其缺点也很明显:当网站更新时,如果 CDN 节点上数据没有及时更新,即便用户再浏览器使用 Ctrl +F5 的方式使浏览器端的缓存失效,也会因为 CDN 边缘节点没有同步最新数据而导致用户端未能及时更新。
CDN 边缘节点对开发者是透明的,相比于浏览器 Ctrl+F5 的强制刷新来使浏览器本地缓存失效,开发者可以通过 CDN 服务商提供的“刷新缓存”接口来达到清理 CDN 边缘节点缓存的目的。这样开发者在更新数据后,可以使用“刷新缓存”功能来强制 CDN 节点上的数据缓存过期,保证客户端在访问时,拉取到最新的数据。
本工具基于该接口开发,你需要输入你想要刷新的 jsDelivr 链接,然后点击"刷新"即可,如不能刷新,可以多刷新几次 地址: https://js-delivr-cdn-purge.vercel.app/
欢迎 Star https://github.com/muzihuaner/jsDelivrCDNpurge
大佬勿喷,我真的很菜😂
1
AoEiuV020 2021-08-17 17:21:04 +08:00 1
是那个 purge.jsdelivr.net ?我之前试过感觉有时有效有时无效,可能是开发时频繁 purge 被拉黑了?但 purge 接口返回都是成功,
|
2
AoEiuV020 2021-08-17 17:24:16 +08:00 1
看了下代码,你这,replace(/cdn/g, "purge")
万一人家文件路径里有 cdn,你也一起替换了? |
3
Trim21 2021-08-17 17:40:18 +08:00 via Android
需要刷新的话应该在 jsdelivr 的文件路径里面加上 tag 或者 commit hash…
|
4
XIU2 2021-08-17 18:55:30 +08:00
我想知道,有没有办法在 git push 后自动刷新相应文件 jsDelivr 缓存的方法?
每次都要我手动刷新。。。 |
5
muzihuaner OP @AoEiuV020 哈哈哈,这个不知道怎么搞😂
|
6
input2output 2021-08-17 19:48:24 +08:00
@muzihuaner #5 正则替换
|
8
yunyuyuan 2021-08-18 09:12:33 +08:00
我都是打 tag 刷新,用你这个还不如我手动访问 purge 呢
|
9
qinxs 2021-08-18 21:57:13 +08:00
replace(/cdn/g, "purge")
这个有点坑 简单处理的话 可以使用 replace(/cdn.jsdelivr.net/g, "purge.jsdelivr.net") 我把这个做成了 GitHub Action,结果发现 purge.jsdelivr.net 基本无效。。。 仓库地址: https://github.com/qinxs/cdn-assets |
10
muzihuaner OP @qinxs 好的,谢谢你的建议
|