jsDelivr 备案许可被注销,导致大量静态资源(博客里的图片等)加载失败,遂寻找更稳定的 cdn 替换,但是,替换 CDN 治标不治本。几天后,我在 GitHub 看到了 freecdn 这个项目,很好地解决了这个问题。
项目描述
freecdn 是一个纯前端的 CDN 解决方案,用于降低网站流量成本,同时提高网站稳定性、安全性,并且无需修改现有的业务逻辑。
互联网上有很多免费的公共库 CDN,例如
cdnjs、jsdelivr、unpkg,但哪个最稳定,始终没有明确的答案。现在你无需纠结这个问题,随意选择即可。freecdn 可根据用户的网络状况,实时切换到合适的 CDN。
本文将会利用 freecdn 自动选择公共库的特性,加速 hexo icarus 站点。
几步接入 freecdn
如果博客访问正常,你已经成功了一半!打开控制台网络标签,可以看到资源是从 Service Worker 加载的——
freecdn 大致做了以下事情:
问题来了,由于本站的资源本来就从
CDN(jsd)加载,并不包含在 public 打包结果中,导致只有极少请求利用了 freecdn,大量请求依然走
jsd。若想解决这个问题,只好从 npm 仓库上挨个下载需要的资源,全部合并到自己的仓库管理,好在依赖的第三方资源不多,也就 8
个,半个小时足以搞定。
├─clipboard
│ └─2.0.4
│ └─dist
├─cookieconsent
│ └─3.1.1
│ └─build
├─highlight.js
│ └─9.12.0
│ ├─lib
│ │ └─languages
│ └─styles
├─jquery
│ └─3.3.1
│ └─dist
├─justifiedGallery
│ └─3.8.1
│ └─dist
│ ├─css
│ └─js
├─lightgallery
│ └─1.10.0
│ ├─dist
│ │ ├─css
│ │ ├─fonts
│ │ ├─img
│ │ └─js
│ ├─lib
│ └─modules
├─moment
│ └─2.22.2
│ └─min
└─twikoo
└─1.4.14
└─dist
如果 freecdn 能够扫描 public 中的 CDN 网址,并生成清单文件的话,就不需要这么麻烦了,然而技术实现应该很难吧。
原文链接:https://blog.csdn.net/qq_37126941/article/details/124098411?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165918471416781818723330%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165918471416781818723330&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-25-124098411-null-null.nonecase&utm_term=%E5%85%8D%E5%A4%87%E6%A1%88cdn
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/1054