Hexo cdn.jsdelivr.net 等部分CDN引用无效的一种低成本解决方案

问题原因:cdn.jsdelivr.net在2021年12月20号国内引用无效被重置,导致部分引用此cdn资源的hexo生成站点js依赖和错误页面功能异常。

本人也遇到此问题,解决方案如下供参考:

考虑到不同的hexo站点使用的插件各有不同,且引用的第三方js库存在差异,故考虑采用低成本的方式解决。大概思路是在生成的部分文件里,替换相应的站点域名,实现在deploy之前完成文件路径的转换。

举例来说,也是本人遇到的问题,常用的js库https://cdn.jsdelivr.net/npm/js-base64/base64.min.js

准备工作(主题icarus为例):

  • 1.下载对应的无效js文件到本地;
  • 2.文件放置在(对应创建CDN路径文件夹)themes/icarus/source/npm/js-base64/base64.min.js;

站点根路径生成常用命令封装了一个简单的操作命令脚本(hexo-deploy.sh):

#!/usr/bin/env sh
# author: Jack Liu
# Description: (debug | deploy git) script

if [ "$1" == "debug" ]; then
	echo "---------------- Debug Mode ----------------"
	hexo clean && hexo s
	exit
fi

hexo clean && hexo g

echo "---------------- Invalid CDN switch local path file ----------------"
# MacOS下sed和Linux发行版之间的区别,MacOS包含备份保护机制,注意sed -i ''
find ./public -name "*.html" -type f -exec sed -i '' 's/\/\/cdn\.jsdelivr\.net\//\//g' '{}' \;

hexo d
echo 'hexo deploy run is ok !'

警告:

  • 脚本包含替换操作!执行脚本前请严格检查命令可行性,防止误操作。
  • MacOS下sed和Linux发行版之间的区别,MacOS包含备份保护机制,注意sed -i ‘’

执行成功后./public下路径替换会为/npm/js-base64/base64.min.js

备注:
其他无效CDN域名引用,参考类似方法,注意sed命令转义。

原文链接 https://www.defense.ink/bafde551.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jianqiu Liu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值