修复 cdn.jsdelivr.net 无法访问的问题
修复 cdn.jsdelivr.net 无法访问的问题
由于一些原因,cdn.jsdelivr.net
在一些地区无法访问 (如 issue)。在网站里添加上 jsdelivr-auto-fallback
代码,可以自动检测 cdn.jsdelivr.net
是否可用,
如果不可用时,会自动把所有 js, css, image 的地址切换到其他可用的域名。
比如
fastly.jsdelivr.net
gcore.jsdelivr.net
你也可以自己准备一个静态资源服务器,只把网站用到的 js, css, img 文件放进去,和 cdn.jsdelivr.net
保持同样的文件目录结构,相当于 cdn.jsdelivr.net
的一个部分镜像。或者建一个 cdn.jsdelivr.net
的 proxy 服务器。然后把静态资源服务器网址放到列表里。这样的话,在 jsdelivr.net
可用的地区或时候,用 jsdelivr.net
,不可用时,用自己的静态资源服务器。
ex.
const DEST_LIST = [
'cdn.jsdelivr.net',
'fastly.jsdelivr.net',
'gcore.jsdelivr.net',
+ 'static.mysite.xxx',
];
如果可以切换到其他 CDN,建议尽量切换。如果是以下几种情况,可以考虑使用本项目。
cdn.jsdelivr.net
会更快cdn.jsdelivr.net
cdn.jsdelivr.net
上面script
标签加上 defer
属性。如果原来有 async
属性,可以跳过。这个可以避免 pending
状态带来的等待时间,大大提升性能。如果是 hexo 生成的网站,可以安装 hexo-filter-jsdelivr-auto-fallback 插件,自动添加。
作为用户,你也可以使用本油猴脚本来将网站中的 cdn.jsdelivr.net
替换为可以访问的域名。
Tampermonkey
(自行百度)感谢 DreamOfIce 贡献油猴脚本。
img
标签改成 link
标签 (css)script
标签都加上 defer
属性,可以大大提升性能timeout
时间由 3 秒改成 2 秒https://github.com/PipecraftNet/jsdelivr-auto-fallback/issues
jsdelivr-auto-fallback
访问遇到问题时,可以用油猴脚本解决问题Copyright (c) 2022 Pipecraft. Licensed under the MIT license.