趁着周末把博客优化了一下,主要优化以下几点:
- 阅读统计和访客统计
- 添加评论
- 升级hexo版本和NexT版本
- 配置SEO
- 静态文件cdn加速
- 使用gulp压缩文件
- 添加lazyload
- 添加站内搜索
阅读统计和访客统计
阅读统计和访客统计使用的都是不蒜子,因为使用的是NexT主题,只需要添加一下配置就可以了。
添加评论
原本评论插件使用的是 disqus,但配置后了之后才发现已经被qi*ang了。改为使用 valine。valine 需要配合 leancloud 用于存储数据。
注意:cleancloud 在创建应用之前,要手动选择华东节点,因为华北节点会报一个 Code : undefined [410 POST https://avoscloud.com/1.1/classes/Comment]
的错误,无法正确加载出评论。
升级hexo版本和NexT版本
之前使用的NexT版本是5.1.2,没有自带 valine ,尝试了各种方法想把 valine 相关的代码复制到这个版本里,但结果都不理想,迫不得已只能升级。
升级hexo比较简单,删掉 lock 文件,删掉 node_modules,在 package.json 里直接把版本号改了,重新 yarn install。升级后没有发现兼容性问题。
升级NexT就比较操蛋了,theme 文件是以源代码的形式从 GitHub 上 clone 下来的,没有在原本版本升级的办法。只能重新clone下来一份,再把配置文件手动迁移过去(复制粘贴),如果之前魔改过 theme 文件,升级简直不要太难。
幸好我之前没有做什么改动和个性化,只需要把原先的配置再重新配置一份就够了。
配置SEO
基本上是参考下面这篇文章进行配置的,没有遇到什么棘手的问题。对 SEO 的配置对我这种流量为0的博客,怎么说呢,自己开心就好,哈哈哈。
静态文件cdn加速
我对博客的一个重要要求,就是访问速度,所有容易拖累访问速度的功能都要思考一下是否必要。所以我的博客一直比较简洁,没有其他花花绿绿的东西,保证速度优先。下面几项都是对访问速度的优化
博客内所使用的图片都是存储在七牛云中的,图片资源无需再优化。这次添加功能引入了不蒜子和 valine,使用 chrome 可以看出这两个 js 文件的加载速度不快。
所以我把这两个文件单独复制出来,上传到七牛云里,并在博客里引用七牛云的链接。
但是发布上去后出现了 http 请求被浏览器 block 的问题。因为我的主站使用的 https,七牛使用的 http(因为七牛的https不能使用免费流量,穷哭o(╥﹏╥)o)。浏览器不允许https请求http。
机智的我灵机一动,使用 nginx 转发七牛云的请求不就行了。所以我在 nginx.conf 添加了以下配置:
1 | location /cdn { |
把 /cdn 目录下的请求全部转发到 cdn.chaohang.top 这个子域名下,比如:
https://chaohang.top/cdn/min.js 会被转发至 http://cdn.chaohang.top/cdn/min.js
这样子就可以成功绕过浏览器的限制了,因为实际的请求是通过服务器代理的。
Next 官方也提供了一些cdn加速,我们可以在配置文件里配置:
1 | # vendors底下全部都是可使用的cdn |
使用gulp压缩html、css、js
因为 Next 的版本7.0,使用 next-neat 会有问题,所以我选择使用 gulp 做代码压缩,也方便以后扩展。
安装依赖
npm install gulp -g
npm install gulp-clean-css gulp-uglify gulp-htmlmin gulp-htmlclean gulp gulp-babel gulp-imagemin babel-core babel-preset-es2015
npm install -D @babel/core
安装后的包版本如下
1 | "babel-core": "^6.26.3", |
在执行过程中可能会遇到一些包版本问题,如有问题请参照我给出的包版本进行调整。
在项目根目录下新建 gulpfile.js
文件
1 | var gulp = require('gulp'); |
在生成代码文件后,使用 gulp
命令压缩文件:
1 | hexo g |
添加lazyload
lazylod可以在用户不查看的时候,不加载相关部分,从而提升网站加载速度。
先是在next目录里clone仓库:
git clone https://github.com/theme-next/theme-next-jquery-lazyload source/lib/jquery_lazyload
再把配置里的开关打开:
lazyload: true
添加站内搜索
Next集成了站内搜索功能,可以先安装依赖
npm install hexo-generator-searchdb --save
然后设置主题配置文件:
1 | local_search: |
以上就是全部优化过程了,即使没人访问的站,也要好好的优化,这就是一个工(搬)程(砖)师(工)的坚持。
本文首发于我的个人博客 https://chaohang.top
作者张小超
转载请注明出处
欢迎关注我的微信公众号 【超超不会飞】,获取第一时间的更新。