开发者社区> 问答> 正文

个人网站—使用七牛云加速(图片,静态文件分别使用二级域名)

来写第二篇。说说对wordpress的一些基本的修改优化。
复杂的不谈,很多常用的方法可以去看看我爱水煮鱼的博客,都有教程讲,主要有以下几点,优化数据库,禁止自动保存,自动草稿什么的,减少php查询,优化表头,删除无用代码什么的,另外把你的js,css什么的压缩一下等等。。。建议大家百度一下,谷歌一下。
具体说下大幅度提高www.lyre.cn博客的加载速度的方法,那就是使用七牛云存储来托管图片和静态文件,比如js,css等。关于这个我爱水煮鱼有专门的插件,也是很方便的,但是出现一个问题,那就是我将图片放到了一个二级域名下面,既方便管理,又方便今后备份迁移数据什么的,但是js,css还在原来的wp-文件夹下面,而插件只能设置一个位置,这就造成了想要托管图片,那么js和css就无法托管,想要托管js,css那么图片就只能用自己的空间流量。
当初遇到这个问题,一时间不知道怎么解决,自己确实又想要将图片用单独的二级域名,静态文件用单独的二级域名。
说说我的解决思路,第一个,那就是修改css,和js的路径,但是这不利于今后的修改,万一七牛云不能用了又得折腾。第二个,就是我采用的方法,就是为css,js再单独加上代码。具体代码如下:
define('FocusCDNHost','http://www.123.com');//wordpress网站网址
define('FocusCDNRemote','http://0.123.com');//cdn域名
define('FocusCDNIncludes','wp-content,wp-includes');//设置加速目录
define('FocusCDNExcludes','.php|.xml|.html|.po|.mo');//设置文件白名单
define('FocusCDNRelative','');//Check this if you want to have links like <wp-content/abc.png> rewritten - i.e. without your blog's domain as prefix.
  
function do_cdnrewrite_ob_start() {
$rewriter = new FocusCDNRewriteWordpress();
$rewriter->register_as_output_buffer();
}
add_action('template_redirect', 'do_cdnrewrite_ob_start');
  
class FocusCDNRewriteWordpress extends FocusCDNRewrite
{
function __construct() {
$excl_tmp = FocusCDNExcludes;
$excludes = array_map('trim', explode('|', $excl_tmp));
  
parent::__construct(
FocusCDNHost,
FocusCDNRemote,
FocusCDNIncludes,
$excludes,
!!FocusCDNRelative
);
}
public function register_as_output_buffer() {
if ($this->blog_url != FocusCDNRemote) {
ob_start(array(&$this, 'rewrite'));
}
}
  
}
  
class FocusCDNRewrite {
var $blog_url    = null;
var $cdn_url     = null;
var $include_dirs   = null;
var $excludes    = array();
var $rootrelative   = false;
  
function __construct($blog_url, $cdn_url, $include_dirs, array $excludes, $root_relative) {
$this->blog_url   = $blog_url;
$this->cdn_url    = $cdn_url;
$this->include_dirs  = $include_dirs;
$this->excludes   = $excludes;
$this->rootrelative  = $root_relative;
}
  
protected function exclude_single(&$match) {
foreach ($this->excludes as $badword) {
if (stristr($match, $badword) != false) {
return true;
}
}
return false;
}
  
protected function rewrite_single(&$match) {
if ($this->exclude_single($match[0])) {
return $match[0];
} else {
if (!$this->rootrelative || strstr($match[0], $this->blog_url)) {
return str_replace($this->blog_url, $this->cdn_url, $match[0]);
} else {
return $this->cdn_url . $match[0];
}
}
}
  
protected function include_dirs_to_pattern() {
$input = explode(',', $this->include_dirs);
if ($this->include_dirs == '' || count($input) < 1) {
return 'wp\-content|wp\-includes';
} else {
return implode('|', array_map('quotemeta', array_map('trim', $input)));
}
}
  
public function rewrite(&$content) {
$dirs = $this->include_dirs_to_pattern();
$regex = '#(?<=[(\"\'])';
$regex .= $this->rootrelative
? ('(?:'.quotemeta($this->blog_url).')?')
: quotemeta($this->blog_url);
$regex .= '/(?:((?:'.$dirs.')[^\"\')]+)|([^/\"\']+\.[^/\"\')]+))(?=[\"\')])#';
return preg_replace_callback($regex, array(&$this, 'rewrite_single'), $content);
}
  
}

当然了,代码要加到 [font='Microsoft Yahei', Tahoma, Verdana, 宋体]代码加入到主题的 functions.php [font='Microsoft Yahei', Tahoma, Verdana, 宋体]文件中。


就这样,我的图片,js,css等静态文件就全部托管到了七牛云上面,网页打开,渲染速度相当快。大家可以访问一下测试一下。
http://www.lyre.cn/1168.html




之所以二次加载,和完全加载有点慢,是因为多说和无觅的关系。

展开
收起
资源来了啊 2014-06-07 12:35:51 14982 0
1 条回答
写回答
取消 提交回答
  • Re个人网站—使用七牛云加速(图片,静态文件分别使用二级域名)
    2014-06-07 12:43:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
创业公司的域名想象 立即下载
“域”见更美好的未来——域名筑梦互联网+ 立即下载
“域”感——《域名投资从入门到精通》 立即下载