HEXO之我的优化
本文最后更新于:2016年11月30日 晚上
hexo 本身生成的是一套静态页面,但是用的其主题的ejs模板相互嵌套,发现最后生成的html文件结构混乱,style,scipt,标签穿插在其中.对于我这个稍微有一点代码洁癖的人来说,感觉异常不爽,另外,也不满足script放在dom节点后的规则.而且,script标签在html中,会形成阻塞,最终导致页面加载时的耗时增加.另外,CSS,和script的静态资源放到服务器上,因我的廉价vps,响应时间长,出网低,也会导致最终这些资源加载缓慢.用控制台network查看,耗时从请求到完全完成,大概在6.8s左右.对于一套静态页面来说,我觉得这是不能允许的.
问题
所以有以下几点需要解决:
1.整合<sctipt>
2.静态资源加载缓慢
3.html结构混乱
4.css,js 可以再压缩减小文件大小.
整合<sctipt>
我的方法是把所有ejs中的script标签,放到after-footer.ejs 中的一个script中.并加defer,其他script标签则放在之后.
1 | |
静态资源加载缓慢
国内CDN加速,需要把网站备案,不过幸好还有各种的免费云空间,例如七牛。可以将主体的js静态资源存放回国内。主要还是修改主题更改文件指向。把CSS,JS文件,上传七牛云.然后主题_config.yml加入你要配置的路径.在ejs相应位置用theme.fancybox 来代替路径.并且指定async 属性,让多个script异步加载.
1 | |
1 | |
1 | |
1 | |
上面是直接用的七牛外链地址,当然也可以用七牛的镜像存储
- 那么自动拉取的文件前面会有
/js...的前缀,就可以这样配置
1 | |
1 | |
1 | |
html结构混乱 和 CSS JS 压缩
可以采用hexo插件 hexo插件(官网) 来自动完成压缩
- hexo-clean-css — Minify CSS files with clean-css.
- hexo-uglify — Minify JavaScript files with UglifyJS.
- hexo-beautify — Beautify Hexo generated HTML, CSS and JS files, using js-beautify. (这个可以格式化html)
开始安装后 hexo g 不起作用,css js 都没有压缩,我尝试npm install xxx不加--save 解决,不知道为什么..
最后

效果显著.从请求到全部加载完成,1.16s,好像百度云CDN加速有免费版,不需要备案,不过需要要修改dns到百度指定的dns,效果也是很不错的.