上一篇文章已经具体讲述了博客的搭建与基本使用,接下来记录一下对博客的优化的工作,从图片加载优化PicGo 图床来介绍。

图片加载优化

概念介绍

预加载就是进入项目前提前加载资源,避免在项目中加载缓慢,影响用户体验

懒加载一般是当图片滚动进可视窗口内才加载图片,可视窗口之外的图片则不加载

matery主题 整体采用预加载模式,这样可以在我们访问其他页面的时候会稍微快点。我们可以在这个基础上对图片进行懒加载,这样做效果就是 html、css、js 加载之后,图片再加载。既保证了网页的打开速度,也不会因图片的庞大体积而拖累了整个页面的加载。

安装插件

  • 在 Blog 根目录执行

    1
    npm install hexo-lazyload-image --save
  • 在根目录下的 _config.yml 中添加对应配置

    1
    2
    3
    4
    lazyload:
    enable: true
    onlypost: false # 是否只对文章的图片做懒加载
    loadingImg: # eg ./images/loading.gif

设置插件

  • 修改 /themes/matery/source/js 中的 matery.js文件,在第108行加上:

    1
    2
    3
    $(document).find('img[data-original]').each(function(){
    $(this).parent().attr("href", $(this).attr("data-original"));
    });
  • 打开 /themes/matery/layout/_partial/header.ejs文件,

    imgspan的两个头加个div

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <div class="brand-logo">
    <a href="<%- url_for() %>" class="waves-effect waves-light">
    <div>
    <% if (theme.logo !== undefined && theme.logo.length > 0) { %>
    <img src="<%= theme.logo %>" class="logo-img" alt="LOGO">
    <% } %>
    <span class="logo-span"><%- config.title %></span>
    </div>
    </a>
    </div>

自定义loading图片

hexo-lazyload-image 插件提供了自定义loading图片的选项,在 loadingImg 后配置图片的路径即可。

使用PicGo图床

PicGo 是一款开源的图床软件,该软件与iPic的不分伯仲,文档支持中文,支持插件开发。

安装 PicGo

下载地址 https://github.com/Molunerfinn/PicGo/releases ,选择下载与系统匹配的安装包,正常安装即可。

下载速度非常慢。。。备用地址:链接 提取码:btzt

创建GitHub仓库

创建一个用于存放图片的仓库,之后依次点击 Setting —— Developer settings —— Personal access tokens 创建一个token,并复制下来。

配置 PicGo

下载完成后进行安装,安装完毕后开始配置,如图:

设定仓库名 按照“账户名/仓库名的格式填写”,比如我的是:DongZhouGu/imageuse1

分支名统一填写“master”。

设定Token将之前的Token粘贴在这里。

指定存储路径留空。

自定义域名上传图片后成功后,PicGo会将“自定义域名+上传的图片名”生成的访问链接,放到剪切板上。默认留空也可以正常使用。这里为了使用CDN加快图片的访问速度,自定义域名我们按照这样去填写

https://cdn.jsdelivr.net/gh/GitHub用户名/仓库名

我的是:https://cdn.jsdelivr.net/gh/dongzhougu/imageuse1

之后就可以正常使用了