f27118dacbe25.png

前言
jsDelivr 是国外的一家优秀的公共 CDN 服务提供商,也是首个打通中国大陆(网宿公司运营)与海外的免费 CDN 服务。jsDelivr 有一个十分好用的功能——它可以加速 Github 仓库的文件。

众所周知,我们可以使用Git仓库来存储各种文件,也可以用来存储图片当图床,但是,在国内的速度堪忧,但是借助jsDelivr,我们可以利用Github+jsDelivr来当一个免费的图床。当然由于jsDelivr可以加速Github仓库中的文件,所以我们也可以将网站的静态资源上传到Github,然后利用jsDelivr进行加速。
使用

仅介绍如何加速github文件,其他同理

    // 加载任何Github发布、提交或分支
https://cdn.jsdelivr.net/gh/user/[email protected]/file

// 加载 jQuery v3.2.1
https://cdn.jsdelivr.net/gh/jquery/[email protected]/dist/jquery.min.js

// 使用版本范围而不是特定版本
https://cdn.jsdelivr.net/gh/jquery/[email protected]/dist/jquery.min.js   https://cdn.jsdelivr.net/gh/jquery/[email protected]/dist/jquery.min.js
 
// 完全省略该版本以获取最新版本
https://cdn.jsdelivr.net/gh/jquery/jquery/dist/jquery.min.js
 
// 将“.min”添加到任何JS/CSS文件中以获取缩小版本,如果不存在,将为会自动生成
https://cdn.jsdelivr.net/gh/jquery/[email protected]/src/core.min.js
 
// 在末尾添加 / 以获取资源目录列表
https://cdn.jsdelivr.net/gh/jquery/jquery/

此外
针对Github+jsDelivr搭建图床来说,可以使用PicGo进行更加简单高效的操作,当然,网上已经有很多详细的教程了,我就不做过多介绍了

不过我用脚本感觉挺好

#!/bin/sh
#cdn address
str="https://cdn.jsdelivr.net/gh/ZGGSONG/cdn/"
hexo="hexo"
blog="blog"
time=$(date "+%Y/%m/%d_%X")
i=1
while [ $i -eq 1 ]
do
    echo -e "\033[41;37m-------------\033[0m"
    echo -e "\033[41;37m添加文件(y/n)\033[0m"
    echo -e "\033[41;37m-------------\033[0m"
    read ans
    if [ $ans == y ]
    then
        echo "请输入文件名:"
        read filename
        echo "存放至哪个目录下(h/b)"
        read choice
        case "$choice" in
            'h'|'H'|'hexo'|'HEXO')
                echo - $filename: $str$hexo'/'$filename >> ~/gitR/cdn/hexo/README.md
                echo  >> ~/gitR/cdn/hexo/README.md
                cp ./$filename ~/gitR/cdn/hexo/
                ;;
            'b'|'B'|'blog'|'BLOG')
                echo - $filename: $str$blog'/'$filename >> ~/gitR/cdn/blog/README.md
                echo  >> ~/gitR/cdn/blog/README.md
                cp ./$filename ~/gitR/cdn/blog/
                ;;
            *)
                echo -e "\033[41;36m输入有误 \033[0m" 
                ;;
        esac
    else
        break
    fi
done

#推送仓库
echo -e "\033[42;37m---------------\033[0m" 
echo -e "\033[42;37m推送到仓库(y/n)\033[0m" 
echo -e "\033[42;37m---------------\033[0m" 
read git
if [ $git == y ]
then
    cd ~/gitR/cdn
    git add .
    git status
    git commit -m "update $time"
    git push
    echo -e "\033[42;37m推送成功 \033[0m" 
else
    echo -e "\033[41;36m取消推送 \033[0m" 
fi
exit 0

本篇目转载于SWJ