为了让博客能更快的访问,体验度更好,缙哥哥绞尽脑汁(大)、想方设法(穷)、竭尽全力(逼)去优化加速。由于缙哥哥想把服务器性能尽可能的使用出来(太抠不愿意花钱升级服务器),又不想花钱买CDN服务,所以就有了今天这个DUX主题静态文件优化加速的骚操作,本次优化感谢代码狗
的帮助以及耐心的解答。
DUX主题静态文件加速
缙哥哥先把DUX主题的静态文件(JS、CSS、fonts、img四个文件夹)放到对象存储并提供加速的二级域名下,并且文件目录要跟DUX主题一致,如:
cdn.dujin.org
DUX主题JS文件加速
在DUX主题的文件夹中,找到/js/loader.js文件进行编辑,在39行处(版本不同可能有所不同)找到
tbquire.config({ baseUrl: jsui.uri + '/js', urlArgs: 'ver=' + jsui.ver, paths: { 'jquery.cookie' : 'libs/jquery.cookie.min', 'jsrender' : 'libs/jsrender.min', 'router' : 'libs/router.min', 'lazyload' : 'libs/lazyload.min', 'prettyprint' : 'libs/prettyprint', 'ias' : 'libs/ias.min', 'hammer' : 'libs/hammer.min', 'main' : 'main', 'comment' : 'comment', 'user' : 'user' } })
将其中的baseUrl
一处进行修改:
baseUrl: jsui.uri + '/js',
替换成你对应已加速的域名
baseUrl: '//img.dujin.org/dux/js',
在DUX主题的文件夹中,找到functions-theme.php文件进行编辑,在364行处(版本不同可能有所不同)找到:
$jss = array( 'no' => array( 'jquery' => $purl.'/js/libs/jquery.min.js', 'bootstrap' => $purl . '/js/libs/bootstrap.min.js' ), 'baidu' => array( 'jquery' => '//apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js', 'bootstrap' => '//apps.bdimg.com/libs/bootstrap/3.2.0/js/bootstrap.min.js' ), '360' => array( 'jquery' => $purl.'/js/libs/jquery.min.js', 'bootstrap' => $purl . '/js/libs/bootstrap.min.js' ), 'he' => array( 'jquery' => '//code.jquery.com/jquery-1.9.1.min.js', 'bootstrap' => '//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js' ) ); wp_register_script( 'jquery', _hui('js_outlink') ? $jss[_hui('js_outlink')]['jquery'] : $purl.'/js/libs/jquery.min.js', false, THEME_VERSION, (_hui('jquery_bom')?true:false) ); wp_enqueue_script( 'bootstrap', _hui('js_outlink') ? $jss[_hui('js_outlink')]['bootstrap'] : $purl . '/js/libs/bootstrap.min.js', array('jquery'), THEME_VERSION, true ); _jsloader(array('loader')); // wp_enqueue_script( '_main', $purl . '/js/main.js', array(), THEME_VERSION, true );
将$purl.
删除,并在后面的单引号中补全自己的加速地址,由于最后一行已经被浩子哥注释了,咱不管他。将
_jsloader(array('loader'));
注释掉(前面加//),并在其下方添加以下代码:
wp_enqueue_script( 'loader', '//img.dujin.org/dux/js/loader.js', array(), THEME_VERSION, true );
其中no、baidu、360、he分别是主题设置中JS文件托管(可大幅提速JS加载)
设置,由于360因为改动地址,所以浩子哥已经取消了360选项。
至此,你的主题的所有js文件就已经缓存加速了。
DUX主题CSS文件加速
在DUX主题的文件夹中,找到functions-theme.php文件进行编辑,在355行处(版本不同可能有所不同)找到
// common css _cssloader(array('bootstrap' => $purl.'/css/bootstrap.min.css', 'fontawesome' => $purl.'/css/font-awesome.min.css', 'main' => 'main')); // page css if (is_page_template('pages/user.php')) { _cssloader(array('user' => 'user')); }
同理,将$purl.
删除,并在后面的单引号中补全自己的加速地址,以缙哥哥为例,修改为:
// common css _cssloader(array('bootstrap' => '//img.dujin.org/dux/css/bootstrap.min.css', 'fontawesome' =>'//img.dujin.org/dux/css/font-awesome.min.css', 'main' => '//img.dujin.org/dux/css/main.css')); // page css if (is_page_template('pages/user.php')) { _cssloader(array('user' => '//img.dujin.org/dux/css/user.css')); }
至此,你的主题的所有css文件就已经缓存加速了。
DUX主题Fonts文件加速
文本编辑/dux/css/font-awesome.min.css
文件,将其所有的url(../fonts/
改为自己已加速的绝对地址。
至此,你的主题的所有fonts文件就已经缓存加速了。
DUX主题img文件加速
删除get_stylesheet_directory_uri() .
,并在后方补全加速地址。
默认表情加速
add_filter('smilies_src', '_smilies_src', 1, 10); function _smilies_src($img_src, $img, $siteurl) { return get_stylesheet_directory_uri() . '/img/smilies/' . $img; }
默认头像加速
function _get_default_avatar(){ return get_stylesheet_directory_uri() . '/img/avatar-default.png'; }
默认特色图片加速
if( $r_src ){ if( _hui('thumbnail_src') ){ return sprintf('<img data-src="%s" alt="%s" src="%s" class="thumb">', $r_src, $post->post_title._get_delimiter().get_bloginfo('name'), get_stylesheet_directory_uri().'/img/thumbnail.png'); }else{ return sprintf('<img src="%s" alt="%s" class="thumb">', $r_src, $post->post_title._get_delimiter().get_bloginfo('name')); } }else{ return sprintf('<img data-thumb="default" src="%s" class="thumb">', get_stylesheet_directory_uri().'/img/thumbnail.png'); } }
至此,你的主题出现最多的图片文件就已经缓存加速了。更多的图片分离加速,可参考:
Hello,
同样购买了DUX主题,发现文章很好。
下面都看得懂,就是第一句看不懂,请教下缙哥哥!
“先把DUX主题的静态文件(JS、CSS、fonts、img四个文件夹)放到对象存储并提供加速的二级域名下,并且文件目录要跟DUX主题一致,”
这句话的意思?
可以不一样,后面全改掉就行,但是目录结构要一样。
这个插件可以解决吗?每次升级主题都这么搞一下的话是不是很麻烦呢?
测试过了,无法插件解决
以前用七牛的时候不是CSS js都缓存过去了吗?
从来不用七牛
免费的CDN为什么不用呢?
对我来说免费流量不够用!
这是“动静分离”呀!
wordpress程序的还没分离,怕每次升级又要搞一次……
追求极限优化!