设置 hexo 下 next 主题的 404 页面

参考https://kaigedong.github.io/2018/04/13/Hexo-NexT%E4%B8%BB%E9%A2%98%E7%9A%84404%E9%A1%B5%E9%9D%A2/

按照Next 官网的做法, 设置404.html,则每次hexo generate都会将这个 html 重新生成。并不可行。

查找 github 的解决办法,有个skip_render 参数,可以让 hexo 忽略某个文件,不进行生成,而直接拷贝(对我来说并不可行)。

经过多番尝试,有了下面的解决办法:

腾讯 404 页面介绍:

腾讯 404 页面中给了接入公益 404 的办法:

<script type="text/javascript" src="//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js" charset="utf-8" homePageUrl="http://yoursite.com/yourPage.html" homePageName="回到我的主页"></script>

解决办法:创建404.md而不是404.html

于是,我直接将source下新建了个404.md,

内容: (设置 comments 是因为即使页面会被腾讯 404 覆盖,但生成的 html 代码依然有 comments 的内容需要加载。)

创建404.md

404.md的内容

---
comments: false
---

<script type="text/javascript" src="//qzonestyle.gtimg.cn/qzone/hybrid/app/404/search_children.js" homepagename='返回主页' homepageurl="/" charset="utf-8"></script>

修改theme/_config.yml文件

然后将theme中的 menu 的 404 进行设置(最后一行):

menu:
   home: / || home
   about: /about/ || user
   tags: /tags/ || tags
   categories: /categories/ || th
   archives: /archives/ || archive
   #schedule: /schedule/ || calendar
   #sitemap: /sitemap.xml || sitemap
   commonweal: /404.html || heartbeat #草梅友仁备注:其实 /404.html 或 404.html应该都可以

大功告成!

效果

参考本站的 404 页面https://blog.cmyr.ltd/404.html

mark