概览 
资源类型 
文件大小 
情景 
加载时间 
处理方式 
前置准备 
 
 
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名时,尽量保持唯一不要重复