前言

接触Hexo已经有不短的时间,期间自己也踩过很多坑,将自己及小白们遇到的问题整理一二,以供参考。

经常会被问到一些问题,也算是对高频问题的一次整理吧。

GoodHexo设置相关

GoodHexo都可以设置些什么

GoodHexo的配置都在Hexo目录下的_config.yml中。用文本编辑器打开该文件后,可看到很多相关设置字段,按照字段说明进行修改或者填充对应的值即可。

怎么修改主题

修改主题的工作可大可小,暂且理解为更换主题,这个操作在Hexo的_config.yml中修改theme:后面的值为你要换的主题名保存即可。

再者,对主题的个性化定制修改就要求有技术功底了,一般主题的说明文档中都会提到怎么设置,但进一步修改就要自己去琢磨主题代码了,有能力的自行设计。

关于菜单怎么来

和标签等菜单类似,在source目录新建个about目录,然后在里面创建个index.md页面文件『以上这些步骤其实只需要用一条命令就完成了:hexo new page about』,填上正确的front-matter头,然后其他的就跟写普通文章一样了。

1
2
3
4
5
6
---
title: 关于本站
layout: page
comments: true # false表示不允许评论
---
这里开始写关于介绍...

GoodHexo部署相关

文章发布不成功

hexo g正常生成了HTML静态页文件,本地测试也正常,但外网访问不对,没有更新。

如果是hexo d命令之后就结束了,没有任何后续反应,很可能是Hexo的配置不完整,导致发布不成功,检查Hexo目录下的_config.yml中部署仓库相关配置是不是不存在了。

部署仓库配置正常情况下应该是这样子的:

1
2
3
4
5
deploy:
type: git
repo: https://github.com/xxx/xxx.github.io.git
branch: master
message: Hexo update

如果配置没错,发布也提示 git done ,那请稍安勿躁,服务器上还没有更新,稍后再试即可。

为什么用自定义域名无法访问

GitHub,coding等都提供了绑定自定义域名的功能,在Hexo\source目录下建个无后缀文本CNAME,在里面填上自己的域名就可以了,不需要带协议。

做完以上只是在网站文件托管商那做了绑定,还需要你到域名dns解析商那【比如阿里云或者dnspod等】,将你的域名做个cname解析到GitHub等提供给你的二级域名上。

部署到GitHub时提示Fatal:the remote and hung up等错误

这个可能是网络问题,稍后再试,或者架个梯子再试。

如果已经有梯子,看下是不是使用的PAC规则而GitHub.com不在PAC文件里,切换到全局模式或者添加GitHub.com规则,相关规则可参考:shadowsocks-添加PAC自定义规则,其他梯子软件大同小异,请自行研究。

Hexo博客能不能部署到自己的VPS上

能,如果自己的VPS稳定可靠的话还建议部署到自己的VPS,自己的机器一般都比GitHub,codingpage等提供的空间大,对域名绑定操作也更灵活。如果你的域名有备案或者打算备案,建议买腾讯云或者阿里云的云服务器。

而且GitHub绑定自定义域名后不支持https,coding则需要在网站底部放置host by coding,否则要先跳广告页才到你的博客。

部署到自己的VPS我曾经写过完整教程,可见:Hexo博客Git-VPS部署完整记录

SSH方式发布失败

Permissions 0644 ‘xxx/.ssh/id_rsa’ are too open

SSH认证是很方便的,设置好后免去设置密码的烦恼,但有时候会发布不成功,日志会如上面的提示。
这是因为Linux系统安全机制造成的,一般是上传的SSH密钥权限太开放了,所以只需要将秘钥文件设置合适的权限即可:

1
# chmod 400 ~/.ssh/id_rsa.pub

网站内容相关

怎么找好看的博客主题

萝卜白菜各有所爱,自己喜欢的主题才是好看的。可以到Hexo主题官网去翻,哪个顺眼就挑哪个。

注意事项:
在官网主题页找主题时,点击略缩图是跳转到演示网站,点击下面的主题标题则跳转到对应的主题代码托管仓库,找到主题文档安装文档说明就可以换上你认为好看的主题了。

博客打开空白或显示404

Hexo只是个渲染服务,并不会智能检测内容上的错误。所以在渲染前你需要新建至少一篇文章,并按Hexo的格式要求填充相关内容,再经过Hexo才能解析出正常有内容的HTML页面。

如果发布提示 git done ,那请稍安勿躁,服务器上还没有更新,稍后再试即可。

要删除一篇文章怎么搞

Hexo站点所有的源文件都在Hexo\source目录下,其中_posts目录下放的是文章的MarkDown源文件,然后渲染发布。
如果无变化或者一些莫名其妙的残留,将里面不要的文件删除后 hexo clean清理一遍再渲染发布就可以了。

怎么修改博客头像

头像一般是主题的功能,不同的主题有不同的设置及修改方法,一般在主题目录下的_config.yml里设置。请找到主题说明文档,然后按照主题说明一步步操作。

改配置,页面模板等文件,最好不要用Windows系统自带的那个记事本,记事本推荐用:Notepad2-mod_Windows自带记事本的绝佳替代

标签菜单点进去提示404错误

和上面的首页打开404类似,默认是没有的,需要自己创建入口页。在source目录新建个tags目录,然后在里面创建个index.md文件,该文件只需要front-matter头就可以了,其他的都不需要。

1
2
3
4
5
6
7
8
---
title:
type: 'tags'
layout: 'tags'
comments: true
date: 2017-02-24 17:37:05
updated: 2017-02-24 17:37:05
---

其他菜单以此类推就可以,目录与Hexo配置文件_config.yml中对应,类型参考Hexo官方文档。

1
2
3
4
5
6
# Directory
source_dir: source #网站跟目录
public_dir: c:\Hexopublic #渲染发布文件夹
tag_dir: tags #标签目录
archive_dir: archives #存档目录
category_dir: categories #分类目录

GoodHexo怎么添加评论系统

Hexo本来就是将MarkDown解析成HTML,纯静态无数据库,所以是不带评论登录等功能的。

如果需要,可以使用畅言,disqus等第三方评论系统,参考教程:

  1. 博客评论从多说迁移到Disqus
  2. 无备案网站使用畅言评论方法

怎么实现首页只显示文章摘要

这个需要主题模板支持,大部分的主题都是支持摘要显示的,支持的方法也大同小异,具体请参考主题文档。

通用方法

通用方法是在文章内容中添加<!--more-->注释,渲染的时候会自动将该注释前内容当做文章摘要处理。

front-matter定义摘要

上面通用方法不适用于想把中间某段当做摘要概况的情况,此时你就可以在 front-matter 中定义一段文章摘要取代 <!--more--> 注释的方法,详见:Hexo中MarkDown文档头规范

文章中要怎么使用图片

这属于MarkDown的基础知识,基本语法可以参考这里
图片路径引用包括两种方法:

  • 图床引用
  • 自己存储

自己存储

在GoodHexo的目录结构 中,source是网站的根目录,所以如果要把图片放在自己的网站存储空间内,那么你可以在source目录下建个目录如images,然后把图片放在这个目录,文章中插入:![](../images/xx.png)即表示该图片位置在你的域名/images/xx.png

图床引用

所谓图床就是一个专门用来存图片的地方,然后在任意地方引用图片的访问地址,如把图片传到微博,然后得到微博上该图片的地址,在需要插入图片的地方使用绝对路径引用即可:
![](https://wx1.sinaimg.cn/mw690/xx.jpg)

别人给你存储图片往往表示不可控,所以久了就会出现图片不在了,原先这图片是承载的啥内容也不知道,本院的原则是能不用图片就尽量不用图片。

hexo d 时刷 zone.offset

提示大概是这样子的:

1
zone.offset has been deprecated in favor of zone.utcOffset

请检查系统时区设置和hexo配置文件 _config.yml 中网站时区配置是否一致。