jsDeliver 强制刷新缓存

jsDeliver 强制刷新缓存

版权申明:本文为原创文章,转载请注明原文出处

原文链接:https://pangwu86.com/posts/3854185796/

博客一直在用 jsDelivr 当床图,但有时图片更新频繁,会发现 CDN 的缓存刷新不及时,总是要等很久才能看到新版本图片,这里记录一下强制刷新缓存的方法。


jsDelivr基本使用方式

目前 jsDelivr 是一个免费,开源的加速 CDN 公共服务。通过在 Github 中创建一个公开库,我就可以通过 jsDelivr 的服务访问到库中的文件,这也就是使用 jsDelivr 作为床图的原因。

访问文件的链接一般如下:

1
2
3
4
5
6
7
8
9
# 访问最新版
https://cdn.jsdelivr.net/gh/${用户名}/${仓库名}/${文件路径}

# 访问特定版本号
https://cdn.jsdelivr.net/gh/${用户名}/${仓库名}@${发布的版本号}/${文件路径}

# 访问特定分支
https://cdn.jsdelivr.net/gh/${用户名}/${仓库名}@${分支名称}/${文件路径}

jsDelivr 还支持一些特殊操作,

1
2
# 获取目录下的文件列表,给出的目录地址最后加上 / 即可
https://cdn.jsdelivr.net/gh/vuejs/docs/

返回一个 html 页面,文件以列表方式展示

1
2
3
# css, js 类型文件支持自动创建 .min 文件
# 如果不存在,jsDelivr 将为您生成
https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/src/jquery.min.js

注释中可以看到使用了 UglifyJS 生成压缩文件

jsDelivr如何刷新缓存

首先 CDN 缓存同步需要时间是个正常现象,像我们这样改了就要看到刷新结果的属于 ”特殊需求“ 了,但也很常见了。

方法也很简单,只要把想要刷新的文件路径的前缀 cdn 改成 purge 即可,看到一段返回的 json 对象,即表示刷新成功,再访问 cdn 地址就可以看到最新的版本了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

# 刷新前
https://cdn.jsdelivr.net/gh/user/images/my.jpg

# 刷新缓存
https://purge.jsdelivr.net/gh/user/images/my.jpg

# 返回结果
{
"id": "783923723947294",
"status": "finished",
"timestamp": "2022-04-17T15:52:23.536Z",
"paths": {
"/gh/user/images/my.jpg": {
"throttled": false,
"providers": {
"fastly": true,
"bunny": true,
"cloudflare": true,
"gcore": true,
"quantil": true
}
}
}
}

# 再次访问即可
https://cdn.jsdelivr.net/gh/user/images/my.jpg

jsDeliver 强制刷新缓存

https://pangwu86.com/posts/3854185796/

作者

胖五

发布于

2022-04-22

更新于

2023-01-08

许可协议

评论