jsDelivr 缓存刷新小工具

2021-08-17 16:56:14 +08:00
 muzihuaner

#说明 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

大佬勿喷,我真的很菜😂

2926 次点击
所在节点    分享创造
10 条回复
AoEiuV020
2021-08-17 17:21:04 +08:00
是那个 purge.jsdelivr.net ?我之前试过感觉有时有效有时无效,可能是开发时频繁 purge 被拉黑了?但 purge 接口返回都是成功,
AoEiuV020
2021-08-17 17:24:16 +08:00
看了下代码,你这,replace(/cdn/g, "purge")
万一人家文件路径里有 cdn,你也一起替换了?
Trim21
2021-08-17 17:40:18 +08:00
需要刷新的话应该在 jsdelivr 的文件路径里面加上 tag 或者 commit hash…
XIU2
2021-08-17 18:55:30 +08:00
我想知道,有没有办法在 git push 后自动刷新相应文件 jsDelivr 缓存的方法?
每次都要我手动刷新。。。
muzihuaner
2021-08-17 19:45:29 +08:00
@AoEiuV020 哈哈哈,这个不知道怎么搞😂
input2output
2021-08-17 19:48:24 +08:00
@muzihuaner #5 正则替换
yin1999
2021-08-18 06:16:51 +08:00
@XIU2 用 GitHub Action
yunyuyuan
2021-08-18 09:12:33 +08:00
我都是打 tag 刷新,用你这个还不如我手动访问 purge 呢
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
muzihuaner
2021-08-19 23:08:13 +08:00
@qinxs 好的,谢谢你的建议

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/796354

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX