前记 本站的服务器是一个只有 1C 1G 1Mbps 的配置的小辣鸡 谁叫他便宜呢
很早之前就对这个 方案 部署出来的加载速度表示不满了 而且也进行了相关的搜索
但是没有发现比较实用的方案
最近进行了一波搜索 却发现了挺多有趣的文章 所以决心下手了
Hexo 端压缩 所谓 Hexo 端 就是未部署到云端前
Hexo 生成的文件 Hexo 通过对Markdown
文件根据相应的主题生成出相应的HTML
等静态文件
其实 Hexo 生成文件的速度可谓是很快的了 那么访问慢的问题出现出哪呢
出现在 Hexo 生成的文件里
Hexo 生成的无论是HTML
、CSS
还是JS
文件都有大段的空白
这使得文件偏大 下载和渲染时间偏长
图片文件 这个就不用解释了
这里有两种解决方案可以选
Minifier 在 Hexo 目录下打开终端 输入npm install hexo-all-minifier --save
安装完成即可 以后每次hexo g
就会自动进行优化
gulp gulp 本质上应该是个自动化流程工具
注:2017/7/17 更新 由于 Gulp 的升级 gulp-minify-css 被弃用 转 gulp-clean-css gulp 的 task 语法变更
先安装 gulp
再在在 Hexo 目录下打开终端 安装依赖
1 npm install gulp-clean-css gulp-babel gulp-uglify gulp-htmlmin gulp-htmlclean --save
在 Hexo 目录下新建gulpfile.js
文件并粘贴代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 var gulp = require ('gulp' );var cleancss = require ('gulp-clean-css' );var babel = require ('gulp-babel' );var uglify = require ('gulp-uglify' );var htmlmin = require ('gulp-htmlmin' );var htmlclean = require ('gulp-htmlclean' );gulp.task('minify-css' , function ( ) { return gulp.src('./public/**/*.css' ) .pipe(cleancss()) .pipe(gulp.dest('./public' )); }); gulp.task('minify-html' , function ( ) { return gulp.src('./public/**/*.html' ) .pipe(htmlclean()) .pipe(htmlmin({ removeComments : true , minifyJS : true , minifyCSS : true , minifyURLs : true , })) .pipe(gulp.dest('./public' )) }); gulp.task('minify-js' , function ( ) { return gulp.src(['./public/**/*.js' , '!./public/**/*.min.js' ]) .pipe(babel({ presets : ['es2015' ] })) .pipe(uglify()) .pipe(gulp.dest('./public' )); }); gulp.task('default' , gulp.parallel('minify-html' , 'minify-css' , 'minify-js' ));
完成后 以后生成完还需要进行压缩 再部署
我这里没有对图片进行压缩
因为我 Blog 里的图片要么是在放在 图床 上 要么是 Instagram 上的 毕竟小水管撑不起
所以我服务器上的图片 只有本站首页的个人头像与网站的图标 压缩一次就够了
至于怎么压缩 后面再说
服务端压缩 开启 Nginx 的 Gzip 功能 只放出代码 直接在 Nginx.conf 文件里加入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 gzip on; gzip_min_length 1k; gzip_comp_level 6; gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; gzip_vary on; gzip_disable "MSIE [1-6]\."; gzip_http_version 1.0; gzip_proxied any;
设置缓存 这样就不需要每次打开网页都从服务器上下载文件 在 server 层级下加入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 location ~* ^.+\.(ico|gif|webp|jpeg|webp)$ { access_log off; expires 30d; } location ~* ^.+\.(css|js|txt|xml|swf|wav)$ { access_log off; expires 24h; } location ~* ^.+\.(html|htm)$ { expires 1h; } location ~* ^.+\.(eot|ttf|otf|woff|svg)$ { access_log off; expires 30d; }
最后 Pong 友,Google 的网页性能优化工具 了解一下
这个网站会对你的网站进行测速与评分 并给出优化建议 而且还会给出优化后的文件 供你下载
我的个人头像图就是从那扒下来的
想了解相关知识的 推荐一个大佬的 Blog 点开的时候可以注意下这位大佬网站的打开速度
真的会被惊到
@Jerry Qu
相关链接:hexo 博客进阶-性能优化 @luckykun
Blog 年底更新与优化 @Timothy