众所周知,WordPress 等博客框架大量使用了 GoogleAPI、GoogleFonts、国外 CDN 资源,然而这些资源在国内访问并不稳定,导致页面经常显示异常,那么如何解决这个问题呢?
大致思路是这样的:
一、搭梯子
这种方式最简单,都不用对 WordPress 等进行源码修改,但只有自己看是正常的,除非访客也搭梯子。
二、将引用资源下载到本地
这种方式可以说完全避免了无法访问的痛点,当然前提是你的域名是可以正常访问的。
示例:比如源码中有一处引用是
<script src="https://apis.google.com/js/platform.js" async defer></script>
那么使用 wget 命令将 js 文件下载本地
cd web/js # 网站 js 目录
wget https://apis.google.com/js/platform.js
并将此处源码相应修改为
<script src="/js/platform.js" async defer></script>
这种方法要求每一处引用的资源都要下载到本地,并对网站源码相应进行修改,引用数量少时很方便,但数量一多改起来就比较累了。
三、使用第三方建立的加速库
现在很多国内很多公益项目都提供了加速服务,比较出名的有科大、360 等,使用方法也比较简单,将相应的引用改成加速站点就可以了,有一点需要注意的是,一旦某个加速站使用的人多了,访问速度也会降下来(最明显的就是 360 了)。
示例:比如上面提到的引用
<script src="https://apis.google.com/js/platform.js" async defer></script>
可以将 apis.google.com 替换成科大的加速站 fonts.lug.ustc.edu.cn
<script src="https://fonts.lug.ustc.edu.cn/js/platform.js" async defer></script>
这里提供几个加速站供参考:
原站 => 加速站
ajax.googleapis.com => ajax.lug.ustc.edu.cn
fonts.googleapis.com => fonts.lug.ustc.edu.cn
themes.googleusercontent.com => google-themes.lug.ustc.edu.cn
ajax.googleapis.com => ajax.css.network
fonts.googleapis.com => fonts.css.network
*.gravatar.com => gravatar.css.network
这种方法算是折中的方法,既解决了第一种方法的不通用,也解决了第二种的操作繁琐的问题,推荐使用。
四、自建加速库
与第三个方法一样,只不过将第三方加速库改为自建而已,自建也不难,只是需要考虑是否投入产出是否符合价值要求了,优势在于不用考虑加速库连接人数太多导致缓慢的问题。
自建要求有一台服务器不间断提供服务,并且要能够连接上被屏蔽的这几个站点,常见的方法是反代(反代是个很强大的工具,你懂得),具体的可参考《Nginx 配置 Google Fonts、Ajax 和 Gravatar 反向代理教程》。
本文引用:
1、科大博客提供 Google Fonts 加速
2、公益项目:CDNJS 库以及 Google Fonts、Ajax 和 Gravatar 反代