零、序言
自从开设这个论坛以来,遇到过大大小小的问题。但是这次却是最难查找问题根源的一次......因为这个问题导致我站几乎全站的前端全部☨崩坏☨。甚至我最初都没找到问题所在,后面一查发现是静态资源CDN jsDelivr被污染导致静态资源崩溃。
提醒!
虽然现在jsDelivr会恢复了国内的调用,但还是建议各位站长最好自查是否使用了jsDelivr的静态资源调用,如果有请尽快更换避免出现前端加载错误。因为我也不知道什么时候又会寄了......
壹、jsDelivr是什么?
jsDelivr是一个开源、免费、迅速的大型CDN,支持直接调用来自GitHub的资源。自称平均在线率高达99.46%,国内外有众多网站使用jsDelivr提供的服务(因为是免费的,白嫖谁不会呢)。
贰、jsDelivr在中国大陆的命运
2022年4月,jsDelivr受到了DNS污染。一般来说,域名在互联网上一般都有可信赖的域名服务器,但为减免网络上的交通,一般的域名都会把外间的域名服务器数据暂存起来,待下次有其他机器要求解析域名时,可以立即提供服务。一但有关网域的局域域名服务器的缓存受到污染,就会把网域内的电脑导引往错误的服务器或服务器的网址,这便是DNS污染。[1] 引用自知乎《DNS污染 解决方案》
2016年,jsDelivr得到了国内传统CDN运营商网宿的赞助。同年jsDelivr挂名上海幻文获得了工信部的ICP备案许可。这是历史上第一个以较正规的方式进入中国大陆的海外静态资源项目,在众多赞助商的支持下,7年里jsDelivr对外提供的极其优秀的服务。甚至jsDelivr的开发组毫不掩饰自己能够在中国大陆合法提供服务的喜悦,还特别在“Network”页面中写下了“Big network in China - jsDelivr is the only public CDN with a valid ICP license issued by the Chinese government,and hundreds of locations directly in Mainland China.”。当然,现在去访问jsDelivr官网时已经见不到这个了,取而代之的是“Low latency ‘Near China’ network - jsDelivr has multiple locations close Chinese urban centers to ensure low latency and high performance for all Chinese users.”。
叁、目前我自己的一点解决方法
目前来看,jsDelivr的服务在国内时不时会中断。包括但不限于导致你站前端崩坏、无法加载图片等等。目前的最优解就是采用jsDelivr的其他加速地址(如jsDelivr CF)虽然还是不太稳定,但又不是不能用,或者采用其他的静态资源加速的服务。当然,jsDelivr目前来看还是首选的静态资源加速服务(因为似乎只有jsDelivr能提供完整的GitHub上托管的静态资源CDN了),除非你自己会搭建一个类似的静态资源CDN,或者真的有很好的替代品。
在中国,免费好用的羊毛是会被人薅到爆的。
是这样的没有办法(