使用七牛为Hexo存储图片和CDN加速

使用七牛为Hexo存储图片
Hexo文章中的图片,可以放在本地,然后和静态文件一起发布(部署)到你的空间。我以前就是这么干的,见这里。
今天又看Hexo官方文档,有支持七牛的插件,尝试了一下,发现是不可用的,因为插件代码中有一些路径有问题,我已经提交了bug给作者。不过因此我开始试用了七牛,感觉一些功能还是很不错的,而且10GB免费存储,每月10GB免费下载流量…,用做博客图片等资源存储,正合适。

注册和安装七牛工具
首先需要申请七牛账号,如果你也需要申请,请访问这个链接(https://portal.qiniu.com/signup?code=3lb1qxh8ee5oy), 这样我可以获得更多的流量(5GB)。
然后登录七牛网站,按照官网说明创建空间。比如我创建的空间是shiqichan,那么我上传的文件,就可以通过这样的URL访问:
http://shiqichan.qiniudn.com/myImg.png
我上传图片文件,使用了七牛提供的命令行工具,当然你也可以使用七牛提供的web界面上传。使用命令行上传的好处是,批量增量的上传。可在这里下载,有Mac版本。
在Mac下的安装办法,解压缩到某个目录下,比如我是存放在/opt/tools/qrsync下了。设置PATH:
sudo vim /etc/paths
将qrsync路径加进去,这样就可以直接输入命令访问了。
Hexo使用七牛图片的步骤
我是在blog目录下,创建了个cdn目录,用来存放图片等资源文件。
hexo的配置文件,默认日志的url方式是:
http://yoursite/year/month/day/your-post-name
做了调整,在_config.yml文件中修改:
permalink: :title/
然后,在cdn目录下,创建日志名称的目录,比如本文的目录名称就是:
use-qiniu-store-image-for-hexo
在这个目录下放置本文的图片,然后使用qrsync命令同步到七牛。再通过七牛的web界面复制出这个图片的url,比如:
http://shiqichan.qiniudn.com/use-qiniu-store-image-for-hexo/qiniu.png
最后,就是在日志文件中加入image标签:
![](http://shiqichan.qiniudn.com/use-qiniu-store-image-for-hexo/qiniu.png)
样式上对图片的处理
这样做显示的图片,有个问题,有时候显示图片太大了。
查了一下hexo默认样式有关图片的设置(见thems/light/source/css/_partial/article.styl):

1
2
3
4
img, video
max-width 300px
height auto
border none

这是stylus,用来生成css文件的。对图片宽度做了约束,但没有对图片高度做约束,如果宽度不高而高度很大,就会出现问题。
改为:

1
2
3
4
5
6
7
8
9
box-shadow(args…)
-webkit-box-shadow args
-moz-box-shadow args
box-shadow args
img, video
max-width 300px
max-height 300px
border none
box-shadow 2px 2px 3px #aaaaaa