自从 Google 抽风之后,WordPress 默认的 Google 字体也就跟着抽风了,表现就是 blog 页面需要 “花很长时间才能打开”。之前我们通过修改 WordPress 源码的方式,将 Google Fonts “劫持” 到 LUG 搭建的代理(传送门),但 WordPress 主题升级之后修改就被覆盖了。因此采用了 @zsj 的建议,对 WordPress 输出的内容进行文本替换,将 Google 字体 URL 强制替换为 LUG 搭建的代理。
技术细节:在 nginx 服务器上,把 WordPress 输出的 MIME type 为 text/html text/css text/javascript text/xml 的内容中的 URL 做如下字符串替换:(Updated 2014-08-05)
fonts.googleapis.com fonts.lug.ustc.edu.cn ajax.googleapis.com ajax.lug.ustc.edu.cn themes.googleusercontent.com google-themes.lug.ustc.edu.cn fonts.gstatic.com fonts-gstatic.lug.ustc.edu.cn
资源可以用protocol relative的方式写,例如:
//fonts.lug.ustc.edu.cn/
浏览器在加载时会自动使用当前页面使用的协议去加载。
这种写法只有非常少数的浏览器不兼容:
http://stackoverflow.com/questions/4831741/can-i-change-all-my-http-links-to-just
如果 WordPress 里本来写的是 https://fonts.googleapis.com/,用户是使用 http://example.blog.ustc.edu.cn/ 访问,也要给重写成 //fonts.lug.ustc.edu.cn/,也就是使用 http 访问字体吗?虽然似乎没有什么影响……
资源使用https加载没有问题。主要是反过来,如果网页用https访问,资源用http的话就会被浏览器抱怨或者拒绝。现在blog是强制https的吗?
Anyway,我只是提一下有这个东西而已。
现在 blog 对 UA 是浏览器且非 IE6/IE7 的强制 https,其他的不做跳转。由于 XP 不支持 StartSSL 的证书,所以不做跳转。
你们怎么设置
现在 blog 对 UA 是浏览器且非 IE6/IE7 的强制 https,其他的不做跳转。由于 XP 不支持 StartSSL 的证书,所以不做跳转。
能把做法或者nginx配置贴出来么?
https://git.ustclug.org/snippets/42
现在已经改成了不匹配 http 或 https,只匹配 //fqdn/。用户有可能写 //fqdn 这种形式的 URL,早先的正则表达式不能匹配。
有人利用这个做了一个chrome和firefox的插件 很有才
http://liujiacai.net/gooreplacer/
求Chart.googleapis.com镜像
你好,我用国外VPS建立了Google fonts 和 Google ajax 公共库方向代理。
同时支持 http 和 https://
只是服务器在国外,延迟较高,但有可靠性。VPS上只运行 Nginx。
地址:
SSL
https://fonts.c4.hk
https://ajax.c4.hk
无加密
http://fonts.c4.hk
http://ajax.c4.hk
如果可以,请把这个转给更多有需要的人。
感谢!更换了前端库地址后,效果明显啊。。。
nginx的替换规则要怎么写?
sub_filter fonts.googleapis.com fonts.lug.ustc.edu.cn;
sub_filter ajax.googleapis.com ajax.lug.ustc.edu.cn;
sub_filter themes.googleusercontent.com google-themes.lug.ustc.edu.cn;
sub_filter fonts.gstatic.com fonts-gstatic.lug.ustc.edu.cn;
sub_filter_types text/html text/css text/javascript text/xml;
sub_filter_once off;
这样写对不对。
请参见这里:https://gist.github.com/gaoyifan/680da074330d2c499d6b
谷歌似乎没有前端公共库?
fonts.proxy.ustclug.org 貌似偶尔会挂