今日,有许多小伙伴发现cdn.jsdelivr.net遭到污染被墙,国内打不开
这导致大部分网站js与css失效,不过问题不大,这下我来教大家如何置换。
方案一
替换官方临时子域名,但这些CDN普遍速度一般,而且前途并不明朗,建议仅供临时使用。
- 服务·官方子域
- CloudFlare:test1.jsdelivr.net
- CloudFlare:testingcf.jsdelivr.net
- Fastly:fastly.jsdelivr.net
- GCORE:gcore.jsdelivr.net
方案二
反向代理
#针对/gh目录的反代 location /gh { proxy_pass https://104.16.86.20; proxy_set_header Host cdn.jsdelivr.net; proxy_ssl_server_name on; proxy_ssl_name cdn.jsdelivr.net; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; }
方案三
推荐一些国内比较稳定、全面的静态资源库吧,其中不乏完全同步cdnjs内容的,可以逐步将静态资源替换过去。
字节静态库:cdn.bytedance.com *完整同步了cdnjs的内容,通过自家CDN加速,缺点是没有海外节点而且链接比较凌乱。 360静态库:cdn.baomitu.com *完整同步了cdnjs的内容,并且有提供Google fonts加速,通过自家CDN加速,前段时间启用了AWS CloudFront的海外节点,是目前国内公共CDN做的比较好的了。 七牛静态库:staticfile.org *通过自家融合CDN加速,海外节点较少不过也表现尚可,缺点就是担心org域名后续备案维护的问题。
国外一个比较常用的静态资源库:unpkg.com unpkg.zhimg.com *主域名国内的访问速度较慢,但有适合国内使用的镜像地址。
loli: cdnjs.loli.net/ajax/libs/ *这个了解不多,速度还可以自己测试。
【百度出品,网宿国内节点】
https://code.bdstatic.com/npm/
【饿了么出品,网宿国内节点】
https://shadow.elemecdn.com/npm/
下面以joe主题为例子进行实操替换,请看教程,教程看不明白请直接划到最底部下载已经替换好的文件,直接解压即可
第一步
登陆你的宝塔面板,我用的是宝塔面板,你们不是自己想办法找有jsdelivr的文件进行替换.
第二步
替换jsdelivr链接,推荐使用:
https://unpkg.zhimg.com
替换前:
https://cdn.jsdelivr.net/npm/wowjs@1.1.3/dist/wow.min.js
把 https://cdn.jsdelivr.net/npm 替换成 https://unpkg.zhimg.com 或者 https://unpkg.com 开头的
替换后:
https://unpkg.zhimg.com/wowjs@1.1.3/dist/wow.min.js
第三步
知道替换方法之后,我们就要寻找哪些文件引用了jsdelivr链接的库,为了节省大家的时间,我把文件所在位置写在下面:
usr/themes/Joe主目录下的index.php(首页页面)
Joe主目录下的post.php(文章页面)
Joe主目录下的census.php(统计页面)
Joe主题目录下的page.php(翻页页面)
Joe主题目录下的friends.php(友联页面)
Joe主题目录下的archive.php(不知道什么页面)
Joe主题目录下public文件夹里面的include.php(各种库,直接使用替换功能,升级typecho1.2版本后不建议替换,默认使用jsdelivr)
include.php里面的链接可以全部替换.其他文件里面的需要一个个试,替换后能访问的话就粘贴到引用位置即可.