经过N次尝试和折腾,终于把blog迁移到了家里的树莓派上。总结一下过程:
首先要判断家中网络是否为公网独立IP
1.访问ip138或者cip,可以找到家中宽带的IP。以我家的某个公网IP118.133.129.193为例。
2.win下使用tracert,linux下使用traceroute,如果跟踪结果显示没有中转只跳了一下直接到了家中IP,则是独立公网IP,否则不是公网独立IP或者假公网独立IP。
例如:独立公网IP
我们一般使用github的pages功能来搭建我们的hexo blog,确实挺方便的,直接使用hexo d命令就可以提交文件到github,然后刷新一下就看到新页面了。还可以绑定我们的域名,甚至顶级域名。github还提供了CDN,所以访问速度也不错。
但是用别人总有不爽的地方,比如github有时候会被墙,提交速度很慢或者提交失败,虽然有了CDN,但是节点在澳大利亚,访问速度在晚上高峰时间不尽人意,不爽就折腾一下,于是就尝试使用国内的VPS来架设和github pages一样功能的服务器。
手头有台百度云的vps,访问速度还不错,装的系统是ubuntu14 64位,先来安装git server。
1 | apt-get update |
看到git version x.x.x,git server就装好了。
不建议直接使用root用户,所以我们新增加一个用户和用户组,并为新用户建立home文件夹。
1 | groupadd git |
当我们看到“Initialized empty Git repository in /home/blog/blog.git/”的时候,一个名为blog.git的裸库就建好了。
nodejs的CSS压缩插件clean-css非常有名,grunt官方CSS压缩的插件grunt-contrib-cssmin和gulp下gulp-minify-css都是基于clean-css开发的,所以clean-css的用户量很大。在鞋厂和鹅厂都用到了这个插件,遇到了两个问题,分享一下。
简写前:
1 | .xxx { |
简写后:
1 | .xxx { |
在clean-css 3.0版本以下,默认会按照上面的格式进行压缩,但是在移动端Android 4.1和4.3不支持这种简写方式(参见caniuse),会造成background-size失效的bug。
最简单的解决方法就是升级clean-css到最新版,最新版默认不简写,如果要简写需要添加参数。
升级方法:
1 | npm update clean-css |
加参数支持简写的例子:
1 | cleancss -o test.min.css test.css --compatibility +properties.backgroundSizeMerging |
如果不方便升级clean-css,有两种方法可以避免低版本clean-css带来的bug。
在根目录_config.yml配置deploy信息的时候,repo项使用了以”https:”开头的地址
换成git@github.com开头的地址以后就可以SSH登录不用输入账号密码了,例如
1 | repo: git@github.com:username/username.github.io.git |
这篇官方教程上面说要使用A记录绑定,不要使用CNAME,因为可能会带来邮件服务无法使用等问题。
但是绑定后之后会出现两个问题:
1.domain解析到本源,就是github的美国IP,没有使用CDN,访问速度很慢;
2.每次PUSH文件都会收到一个标题“[yourusername.github.io] Page build warning”的邮件,邮件中把顶级域名认定为了subdomain,建议使用CNAME做转发,与教程自相矛盾;
折腾了好久,在account setting里面关了email通知也不行,最后就依了邮件,做了CNAME转发,结果一切正常了。
Update your browser to view this website correctly. Update my browser now