概览
资源类型
文件大小
情景
加载时间
处理方式
前置准备
woff2字体文件
5M+
一:放在source目录下,直接访问托管的github网站
20s+
可以托管在国内的gitee上,但它会莫名封掉不让访问。并且hexo有部分应用依赖github。不考虑托管在国内
无
二:文件挂到七牛云存储上,https://s.qiniu.com/QVNJNf
cdn
1.备案域名 2.域名证书
图片
大图
例如:toc_img和底部图
图片格式转为webp,工具:XnConvert
小图
例如自定义鼠标图
资源文件直接放在github托管的网站上,在source目录下 css中的可以通过相对路径引用,配置文件可以直接通过域名访问
字体图标 默认走的是jsdelivr
图片 小图 小图还是别放免费图床了,完全属于负优化了,当然如果找到了serverResponse比较快的图床,还是可以的(如果付费图床自己做了cdn,还是放图床上吧)
放图床上
放github上
放七牛云上
对比可以看到,虽然七牛云的contentDownload最快,但由于是外链,有个200多ms的Queueing队列调度时间(这个是本站程序决定的),并且七牛云等待serverResponse的时间并不比github快
资源跨域图
如果是文章里的外链图片,压缩成webp放在https://7bu.top/图床上(支持webp格式)
这个是付费的图床,做了cdn加速的,也不贵
图片还是不放在七牛云上了,就放个字体文件就行
文章图片懒加载 Hexo 图片懒加载 | 竹山一叶 (zsyyblog.com)
CSS 处理自定义CSS文件
先在_config.yml忽略掉一些文件,避免发布纳入
1 2 3 4 exclude: - "custom/node_modules/**/*" - "custom/package.json" - "custom/bak/**/*"
配置 | Hexo
样例
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 include: - ".nojekyll" - "css/_typing.css" - "_css/*" - "_css/**/*" exclude: - "js/test.js" - "js/*" - "js/**/*" - "js/test*" - "js/**/test*" ignore: - "**/foo" - "**/themes/*/foo" - "**/themes/**/foo"
在source/custom使用webpack压缩文件
1 2 3 4 5 npm i webpack@4.41.6 webpack-cli@3.3.11 -D npm i css-loader@3.4.2 style-loader@1.1.3 -D npm i mini-css-extract-plugin@0.9.0 -D npm i postcss-loader@3.0.0 postcss-preset-env@6.7.0 -D npm i optimize-css-assets-webpack-plugin@5.0.3 -D
对应的webpack.config.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 const {resolve} = require ('path' )const MiniCssExtractPlugin = require ('mini-css-extract-plugin' )const OptimizeCssAssetsWebpackPlugin = require ('optimize-css-assets-webpack-plugin' )module .exports = { entry : './js/index.js' , output : { filename : 'js/built.js' , path : resolve (__dirname, 'build' ) }, module : { rules : [ { test : /\.css$/ , use : [ MiniCssExtractPlugin .loader , 'css-loader' ] } ] }, plugins : [ new MiniCssExtractPlugin ({ filename : '../css/custom.min.css' }), new OptimizeCssAssetsWebpackPlugin () ], mode : 'development' }
js/index.js中引入原来写在配置文件中的css
1 2 3 4 5 6 7 8 9 10 11 import '../css/font.css' ;import '../css/mouse.css' ;import '../css/card_wx.css' ;import '../css/scrollbar.css' ;import '../css/windmill.css' ;import '../css/optimize.css' ;import '../css/video.css' ;import '../css/universe.css' ;import '../css/rightMenu.css' ;import '../css/cat.css' ;
注意css中不要写相对路径,直接写source下一级的路径/custom/css/...即可,否则打包会不认识webp格式
运行npx webpack打包,在css目录中生成了custom.min.css
在配置文件中引入这一个css文件即可
注意:我们在写样式类名和id名时,尽量保持唯一不要重复