从wordpress转战hexo

前言


  之前弄了个腾讯云的学生机,顺带利用学生优惠申请了个域名,不知道干嘛就搭了一个wordpress。当时用wordpress还是蛮流行的,有很多丰富的插件,会一些html也可以自己定制一些东西。wordpress很臃肿,又受限于学生机,首次加载贼慢,还有学生机的内存,之前课程的时候弄ubuntu图形界面,主机崩掉了,丢失了一些数据。最近不知怎么wordpress站点被黑了,每天会发几篇文章。也没有其他恶意行为,找了原因,发现也没完全解决掉。然后就被安利了hexo,了解了下,hexo全部生成静态文件,加载很快而且没有数据库,迁移也方便,也很安全。

  hexo的搭建还是蛮简单的,但是在这个过程中还是踩了很多坑,就来分享一下遇到的坑。

hexo搭建


  这个过程还是蛮简单的,按照网上普通的配置教程进行配置就行了。就来说我这个过程遇到的坑。

1.windows下cmd和gitbash,都无法成功登陆github。
  本地搭建好hexo之后往github上部署的时候,我使用的https,这种情况要输入github账号和密码,部署的时候会弹出登陆,确认了很多遍账号密码确实没输错,才觉得可能这里有问题,有很多人都遇到了问题。最后使用ssh成功登陆并部署成功,所以建议是从git拉代码还是使用ssh比较稳妥,当然其他os好像不会存在这个问题。

使用自己的域名


  在namesilo购买了一个自己名字简拼的域名,准备把自己博客地址绑定到自己的域名。因为不是很懂,就在网上找教程,都没有讲的很清楚,导致踩了坑,还不知道为什么。

1.Nameserver的问题
  我用cloudflare做dns解析,但是当时并不知道这个东西,也没有去改namesilo域名下自带的nameserver,就开始用cloudflare做dns解析,这样导致还是用的namesilo的域名解析。
nameserver: 表示解析域名时使用该地址指定的主机为域名服务器,且域名服务器是按照文件顺序来查询的,只有当第一个域名服务器没有响应才会去查找下一个nameserver。
  这就可以解释开始为什么部署不成功,而且还是链接到namesilo的地址,后面我将cloudflare给我的域名服务器添加到nameserver中,还是不生效,这个问题也就可以解释拉。所以要做DNS解析,先得修改域名的nameserver,当然如果你是使用购买域名的供应商的DNS解析就不用修改了。
  DNS解析成功后,在github pages服务中填写自己解析好的域名就可以实现自己域名的访问了。

2.使用cloudflare的cdn加速导致站点无法访问
  这个问题倒还没研究清楚,是如何产生的,反正我开了cdn加速就会导致站点无法访问,无奈,只能暂时先关闭cdn加速,然后有时间再研究,使用cloudflare的免费cdn为什么会导致站点无法访问。

3.给自己网站加小绿锁,配证书
  这一步在解决了Nameserver之后,好像就没有什么困难了。将域名的nameserver配置成cloudflare的域名服务器之后,记得在域名overview下点击check,确保域名成功激活。域名为激活状态后,就直接申请一个ssl证书就可以了,最多可以申请15年。最后应该就可以在github pages服务下选择强制使用https就可以了。

选择一个hexo主题


  hexo和wordpress一样有很多主题可供选择,我选择的是hexo-theme-lite,比较烦的一点是他文章是全部在首页进行展示的,看着有些乱,准备后面花时间改进下,被吸引的主要是这个高斯模糊的效果很赞。但是我还是遇到坑了。

1.删除文章或迁移文章会导致hexo出错,无法生成静态文件也无法部署。
  我第一次是删除了原有的一篇helloword文章,然后部署就报错了,当时看是hexo官方一个api库的报错,就以为是自己操作的锅,没办法我就重新来过部署了一遍hexo。然后我将wordpress的文章迁移过来的时候,也报了相同的错误,就觉得这不是偶然,然我去看了主题中引的这个库,防线报错的地方是一个比较低级的错误,一个过滤htmltag的函数,这个函数接收一个字符串,如果字符串非空就过滤htmltag并返回,如果为空返回null,然后在调用这个方法的基础上又使用了substring,顿时就黑人问号脸了…
  substring()是js字符串的一个方法,但前面那个方法为空会返回null,null是一个空对象,这里是解析不了的。所以我就修改了这个地方,测试了一下就解决了这个bug。

最后


  还是花了几个晚上的时间来搞这个博客,希望也是一个好的开始。另外还有一些问题可能记不太清楚了。
  看了整篇,怎么没有一张图???本来想截图引入的,但是发现好像不是比较好的做法,看到网上建议用七牛云做图床的,准备在搞一搞一起把图片弄上来。