BNDong/Cnblogs-Theme-SimpleMemory

github仓库代码更新,cdn访问不立即生效

Closed this issue · 5 comments

前提: 我将你仓库fork过来,内部url替换为自己仓库的,用cdn.jsdelivr.net访问。

问题:

  1. github文件代码修改了,cdn可能由于缓存,代码未及时更新(有时甚至30min后才更新),我每次都是修改文件名,cdn代码才立即生效。
  2. 我从github仓库删除一个文件,并清除以前提交历史版本,用cdn链接访问,发现文件还在

请教如何让代码修改修改,立即生效? 每次修改文件名很麻烦(尤其修改文件多时候)?

很抱歉之前的回答。仓库目前使用的 cdn 是 jsdelivr,我了解了一下,当通过 cdn 第一次访问时候,cdn 会根据这个 url 将文件缓存起来。过后即使修改删除了文件,只要 url 匹配就会读取缓存。

关于缓存的更新:目前更新缓存官方并没有提供工具,但是提供了api(需要发邮件向官方申请权限),自动更新缓存应该在一天左右。

替代方案:修改文件名是一个方式,但是比较繁琐。但 jsdelivr 是可以通过版本加载文件的,可以通过 commit 的哈希值作为版本加载,这样可以实现立即生效的这么一个效果。

谢谢。

我用PicGo, 把自定义域名设置成https://cdn.jsdelivr.net/gh/... , 去上传图片时,发现图片并不能完整的上传,往往只上传了上半截,是图片太大了吗?有人遇到过这个问题没?

我用PicGo, 把自定义域名设置成https://cdn.jsdelivr.net/gh/... , 去上传图片时,发现图片并不能完整的上传,往往只上传了上半截,是图片太大了吗?有人遇到过这个问题没?

jsd cdn 上限是20m 不要太大了

我知道这个怎么修改缓存,我也遇到了这个问题
但是下面的成功解决:
例如下面的jsdelivr文件地址
https://cdn.jsdelivr.net/gh/jquery/jquery@3.2.1/dist/jquery.min.js
只需要把cdn.jsdelivr.net替换成purge.jsdelivr.net然后复制到浏览器访问就会更新缓存
https://purge.jsdelivr.net/gh/jquery/jquery@3.2.1/dist/jquery.min.js

这个原理就是把原来的服务器缓存的内容强制过期,再下一次中重新加载