JsDelivr 提供的全球 CDN 加速,CDN 的分流作用不仅减少了用户的访问延时,也减少的源站的负载,并且 JsDelivr 是开源的免费 CDN。
但是,当网站更新时,如果 CDN 节点上数据没有及时更新,即便用户在浏览器使用 Ctrl
+ F5
(windows)或者 command
+ shift
+ R
(MAC)的 强制刷新 方式使 浏览器端的缓存 失效,也会因为 CDN 边缘节点没有同步最新数据而导致用户端未能及时更新。
也就是说:尽管你已经将更改之后的静态资源(如 js、css 等)推送到 github,仍然会出现 文件最新版本和 CDN 缓存版本不同步 的问题,导致无法在第一时间更新。
github branch 更新后,JsDelivr 会在手动清理缓存的 24 小时 内刷新
github release 更新后,JsDelivr 会在手动清理缓存的 7 天 内刷新
清除 JsDelivr 缓存
对于 JsDelivr,缓存刷新的方式也很简单,只需将想刷新的链接的开头的 cdn
更改为 purge
,即将
https://cdn.jsdelivr.net/
切换为
https://purge.jsdelivr.net/
示例接口:https://purge.jsdelivr.net/gh/Bookstall/Bookstall.github.io@main/assets/vendor/prism/js/prism.js
直接在浏览器访问该实验接口,可以得到如下的结果:
{
"id": "EHTzLz0bJ4hOM0K3",
"status": "finished",
"timestamp": "2023-02-19T06:19:52.546Z",
"paths": {
"/gh/Bookstall/Bookstall.github.io@main/assets/vendor/prism/js/prism.js": {
"throttled": false,
"providers": {
"CF": true,
"FY": true,
"GC": true
}
}
}
}
其他工具
https://github.com/rockswang/ghdelivr
参考
文档信息
- 本文作者:Bookstall
- 本文链接:https://bookstall.github.io/fragment/2023-02-19-purge-jsdelivr-cache/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)