解决一次Jsdelivr导致的样式丢失。

前言

2021年12月20日JsD在中国访问不通,无法正常使用,后续在JsD官方在推文上发布了原因。
具体就是JsD失去了在中国的备案,因为JsD在国内使用的是国内的CDN加速服务,所以必须要备案才可以,当然这备案掉了肯定没那么容易再弄回来的,JsD目前已将国内加速切换到了全球CDN加速,速度是大不如从前了,要搬家的话又是一部分大工程,因为有很多人用JsD的功能来做图床用,不过幸好我没有用,不然就很头疼了。

解决方法

更换到其他公共CDN
Staticfile CDN
http://www.staticfile.org/

七牛云存储提供,我们的目标是提供这样一个仓库,让它尽可能全面收录优秀的开源库,并免费为之提供
CDN加速服务,使之有更好的访问速度和稳定的环境

又拍云JS加速库
http://jscdn.upai.com/

又拍云为您托管常用的JavaScript库,您可以在自己的网页上直接通过script标记引用这些资源。这样做不仅可以为您节省流量,还能通过我们的CDN加速,获得更快的访问速度。

BootCDN
https://www.bootcdn.cn/

Bootstrap 中文网开源项目免费 CDN 加速服务 - 我们致力于为
Bootstrap、jQuery、Angular、Vue.js 一样优秀的开源项目提供稳定、快速、免费的 CDN 加速服务。BootCDN
是运营时间最长、用户量最大、最早同时支持 HTTPS(SSL)和 HTTP/2.0 协议的中立免费 CDN 。

75CDN
https://cdn.baomitu.com/

360 前端静态资源库是由奇舞团支持并维护的开源项目免费 CDN 服务,支持 HTTPS
和 HTTP/2,囊括上千个前端资源库和 Google 字体库。

烧饼大佬的公益公共库
https://css.loli.net/

常用前端公共库 & 和谐使用 Google 公共库、字体库的方法

字节跳动静态资源公共库
http://cdn.bytedance.com/

字节跳动静态资源库支持多协议、资源动态拼接、快速检索及资源的动态更新,安全、稳定、实时。

国外
CDNJS
https://cdnjs.com/

The free and open source CDN for web related
libraries to speed up your website!

jsDelivr
https://www.jsdelivr.com/

jsDelivr is a public open-source CDN
(Content Delivery Network) where anyone can submit a project to be
hosted and delivered by our network.(有中国节点,还支持Github,强烈推荐!!)

更换Jsdelivr的子域名

jsdelivr主域名cdn.jsdelivr.net国内已经完全被墙了,虽然可以切换成jsdelivr的子域名,不过这个CDN走的是其他线路,也不能保证以后不会被墙。

CloudFlare:test1.jsdelivr.net

CloudFlare:testingcf.jsdelivr.net

Fastly:fastly.jsdelivr.net

GCORE:gcore.jsdelivr.net


网站目录下,输入以下命令修复

1
sed -i "s#cdn.jsdelivr.net#fastly.jsdelivr.net#g" $(grep -rn 'cdn.jsdelivr.net' | awk '{print $1}' | awk -F: '{print $1}')

反向代理Jsdelivr

如果一定要使用jsDelivr的资源的话,可以考虑通过NGINX反代cdn.jsdelivr.net这一个资源库自用。建议通过海外优化线路落地+国内中转缓存,不过要注意添加防盗链以及尽量隐藏反代路径,以防止被其他人滥用。具体配置这里给一个简单的范例,博主不是很推荐这样做,可靠性上很打折扣。

1
2
3
4
5
6
7
8
9
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;

宝塔可以直接反向代理

我使用的是宝塔面板创建的网站

首先将域名解析到你的服务器

在宝塔面板中创建一个网站

配置反向代理。

不要用良心云,套路云反代,有封鸡风险。
首先打开需要反代的域名的站点配置文件。


解决一次Jsdelivr导致的样式丢失。
https://blog.15xd.cn/posts/8c48d2f1.html
作者
周次辉
发布于
2022年5月21日
许可协议