Hexo默认的首页每次页面刷新时,播放器之类会被重置,所以想法是使用iframe内联框架,将整个页面嵌在里面,而自己另外定义一个主页,将播放器放在外面,这样就实现了在跳转时播放器能够继续播放的效果,实际上仔细看网易云官网也是这么干的,这样做还能够实现自定义的首页,个人觉得更灵活一些,而博客页面可以成为子网页。那么问题是如何更改首页路由?花了一早上查了不少资料浏览了不少博客,99.9%的做法没能符合预期,然后功夫不负有心人,终于找到一个和我想的完全一致的做法(ps:主要是使用了google(#-_-))。
原文链接
http://www.jsdoi.com/blog/2016/02/24/blog-hexo-github/
1.更改生成目录
在_config.yml的第15、16、20行更改如下:
url: http://foradawn.github.io/blog
root: /blog/
public_dir: public/blog
目的就是将博客文件生成到public的子目录blog下。
2.更改部署目录
在 node_modules/hexo-deployer-git/lib/deployer.js 的第19、20行更改如下:
// var publicDir = this.public_dir;
var publicDir = pathFn.join(baseDir, 'public');
设置根路径为public,因为public_dir此时为public/blog
3.修复翻页问题
在 node_modules/hexo/lib/plugins/helper/url_for.js 的第8、9行更改如下:
// path = path || '/';
path = path || '';
首先声明博客首页为http://foradawn.github.io/blog ,网站首页为http://foradawn.github.io 。
博客首页是在子路径/blog/下,但处于非第一页的页面时分页条第一页的链接变成了网址首页,原因是生成博客第一页链接时传的path为null,hexo分页插件将其替换成/,但所有的/又处理成网站首页没有加上根路径/blog/,改成’’后会正确加上根路径,同时path为/的也能正常处理成网站首页。
四、总结
好了,现在自定义文件都在public文件夹里(比如将index.html放在public里直接访问网站即是访问该文件),自动生成的博客文件都在public/blog里,每次hexo g更新博客,hexo d部署public文件夹,基于github的自定义主页的HEXO博客基本告成啦!