Jan 6, 2014

|

[Hexo] 遇到的一些问题与解决办法

一直有些博客写记录的习惯,但是越来越觉得定制的博客们很多时候无法满足需求,了解了一些框架后,最终选择了 hexo,甚至打开主页的瞬间就认定它了。hexo 由 Node.js 驱动,迅速,简洁。

这两天也遇到了一些问题,简单地记录下来。

1. 无法成功 deploy

此时已经完成了 node.js 的安装,并在 github 创建了名为 username.github.io 的 repository 。部署完成之后:

hexo generate 
hexo server  

此时已经可以通过 localhost:4000 查看页面,landscape 的主题觉得很深沉。

hexo deploy

竟然没有成功。出现了好几个 fetal:......,提示文件不存在。赶紧关掉 bash,用管理员权限打开,终于没有 fetal 了。windows 总是这样.....就在我得意的笑时,仔细一看,竟然没有成功 push 到 github。搜索良久,猜想也许是重装系统后 ssh key 出问题,重新生成了一个,依然未能解决。看到有网友说 github 名字有大写可能导致问题,一想自己的名儿,于是联系了 github 的工作人员,人家很快回邮件,开头就是 NO!往来了两封邮件,查看密钥可用性,以及我的命令和错误。结果第二天,就好了......是的,就好了。个人认为可能真的和 ssh key 有关吧。

2. ico 图标的添加

关于小图标的添加,参考了 zippera 所写。

<% if (config.root){ %>
  <link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" /> #这段是faviconer提供的通用代码。
<% } %>

我的做法是直接将以上代码添加到 head.ejs

特别感谢 Qing 设计的 A,B 图标,在自己在操作过程中,只能在 localhost 查看到图标。查看了 github 的 repo,发现反复 deploy B 图标但是依然存在的是 A 图标,纠其原因,放弃 A 图标之后缓存还在。查看了文档,根目录下的 db.json 即为缓存,删除之,重新 deploy,就成功了。

此后,如果由于缓存而导致的无法更新内容,删除 db.json 即可。

3. 域名的解析

选择了 DNSPod 解析域名,添加 A 记录时,记录值填了个二级域名的 ip,坐等~吃过饭后依然不行,参考了一些人的经历,又添加了一条 A 记录,ip 写了 pages.github.com204.232.175.78;很奇怪,自己 ping 的 ip 地址是一个澳大利亚的地址 103.***.***.***。经过一番折腾,验证了 204.232.175.78 和 ping 的 ip 地址都是可以用的。而且后者更快。

4. hexo generate 无法解析

在本文修改再提交时又遇到问题,hexo g 出现了一下 log:

rawMessage: 'Unable to parse.',
parsedLine: 8,
snippet: '  hexo generate ',
parsedFile: null,
message: 'Unable to parse.',
domain: 
{ domain: null,
 _events: { error: [Function] },
 _maxListeners: 10,
 members: [],
 _disposed: true },
domainThrown: true }

去查看了 hexo 项目的 Issues,有人遇到类似的一些问题,原因是 markdown 语法不太对,发现是因为汉字之间用了 ----

尾声

(*^^)v路漫漫其修远兮,吾将上下而求索。