使用七牛云加速Typecho静态资源

通常我们会使用CDN、外链图片以达到加速站点速度,减少服务器压力的目的。但是CDN只能将服务器的css、js等静态文件缓存在CDN节点上,而真正的文件其实保存在站长的服务器上。如果用户是这个节点第一个访客或者缓存已经过期,访客的请求就会让CDN节点重新获取一次你的静态文件,而这也就导致了“第一次访问很慢,后来就快了”的结果。
由于对象存储的费用逐渐降低,更多的站长更愿意选择将自己的静态文件托管给第三方机构代为保存。这也不仅仅能提高速度还能减少服务器压力。

开始

  1. 在七牛云注册一个账号,并实名认证获取免费额度 https://portal.qiniu.com/signup?code=1hk1z9z9xslle
  2. 创建一个新的对象存储空间,需要选择公共空间(私有空间无法跨域)
  3. 在CDN(别的互联可能叫CDN或全站加速)绑定你的域名,ps:建议申请个SSL证书,如果你的站点有证书但是调用的css和js没有会出现报错的情况
  4. 绑定域名到空间

到此,准备工作已经完成,确认你没有疏漏任何步骤,就可以正式开始了。

正式开始

  1. 选择镜像存储,在回源地址填入你网站的地址。镜像空间选择你所创建的空间

    1. 在CDN中选择你所绑定域名进行回源配置。选择七牛云存储,你创建的空间。建议开启去参数回源

  1. 建议开启防盗链配置,域名之间请回车换行,无需填写 http://,https://;

Typecho修改

  1. 编辑网站根目录下 config.inc.php添加如下代码,注意替换你自己的 CDN 地址。后面没有 /

    /** 定义镜像地址 */
    define('__TYPECHO_CDN_DIR__', 'https://yourcdn');
  2. 接着打开 \var\Widget\Options.php在第 160 行左右,themeUrl中,将 $this->siteUrl 都改为刚刚定义的 __TYPECHO_CDN_DIR__

    修改后的代码如下:

/**
   * 获取模板路径
   *
   * @access protected
   * @return string
   */
protected function ___themeUrl()
  {
      return defined('__TYPECHO_THEME_URL__') ? __TYPECHO_THEME_URL__ :
          Typecho_Common::url(__TYPECHO_THEME_DIR__ . '/' . $this->theme,__TYPECHO_CDN_DIR__);
  }

同样的, plug­in­Url 也用同样方法修改
修改后的代码如下:

/**
    * 获取插件路径
    *
    * @access protected
    * @return string
    */
   protected function ___pluginUrl()
   {
       return defined('__TYPECHO_PLUGIN_URL__') ? __TYPECHO_PLUGIN_URL__ :
           Typecho_Common::url(__TYPECHO_PLUGIN_DIR__, __TYPECHO_CDN_DIR__);
   }

保存,结束。

刷新首页,看一看静态资源加载地址是不是已经变成 CDN的地址了!

发表评论