wordpress使用autoptimize插件开启YUI compression压缩css/js

今天在wordpress后台整理插件,因为之前安装了autoptimize,一款压缩js和css的插件

因为后台设置里有一个选项Use YUI compression? 之前一直没勾选,不知道开启后是不是效果更好呢?

所以准备看看这个YUI compression是何方神圣,选项后面有注释Read [autoptimize]/yui/README.txt for more information.

打开README查看,是如何开启这个功能的说明,如下

1
HOW TO USE YUI COMPRESSION
--------------------------
To use YUI Compression for JavaScript and CSS code, you need:
1- java installed and working on the server
2- YUI Compressor .jar file on the same directory as this file, with
   "yuicompressor.jar" as name. You can get it here:
   http://yuilibrary.com/downloads/#yuicompressor
3- PHP's shell_exec function enabled.
4- Writing permissions on this directory

When all the requerimients are fullfilled, you will be able to enable
YUI compression on Autoptimize's config page.

首先要在服务器上安装java,到sun找到适合版本的jre下载到服务器,我下载的为jre-6u24-linux-i586.bin

然后安装到指定目录

1
2
3
4
5
6
mkdri /usr/local/java
mv jre-6u24-linux-i586.bin /usr/local/java
chmod +x jre-6u24-linux-i586.bin
./jre-6u24-linux-i586.bin
rm -fv jre-6u24-linux-i586.bin
ln -s /usr/local/java/jre1.6.0_24 /usr/lib/jre

这样就把jre解压安装到/usr/local/java/jre1.6.0_24下了

因为我的nginx使用www用户在运行,所以给www加入java环境变量

1
2
3
vi /home/www/.bashrc
export J2RE_HOME=/usr/lib/jre
export PATH=$J2RE_HOME/bin:$PATH

切换到www用户看看java命令是否已经可以运行

1
2
3
4
5
su www
java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)

www用户的java环境以及配置好了,下面是下载yui了,进入到wordpress的插件目录下

1
2
3
4
5
6
7
cd /your htdocs path/wp-content/plugins/autoptimize/yui
wget -c http://yuilibrary.com/downloads/yuicompressor/yuicompressor-2.4.2.zip
unzip yuicompressor-2.4.2.zip
cd yuicompressor-2.4.2/build
cp yuicompressor-2.4.2.jar ../../yuicompressor.jar
cd ../..
chown www.www yuicompressor.jar

到你的phpinfo页面看看shell_exec函数是否被禁用,这里需要这个函数,如果正常那么配置就结束了

你可以手工测试下,复制一个css文件到yui文件夹下,切换到www用户,试试能不能正常转换

1
2
3
4
5
6
7
8
9
su www
java -jar yuicompressor.jar yourcss.css -o yourcss.mini.css --charset utf-8 -v --type css
ll
-rw-r--r-- 1 www www 532 10-10 14:33 README.txt
-rw-r--r-- 1 www www 17646 04-10 14:56 yourcss.css
-rw-r--r-- 1 www www 13651 04-10 14:57 yourcss.mini.css
drwxr-xr-x 6 www www 4096 04-10 14:42 yuicompressor-2.4.2
-rw-r--r-- 1 www www 1692827 04-07 04:27 yuicompressor-2.4.2.zip
-rw-r--r-- 1 www www 851219 04-10 14:43 yuicompressor.jar

可以看到之前的yourcss.css大小为17646,压缩后的yourcss.mini.css为13651,不过我感觉没小多少,没达到我的期望啊,我希望小一半

然后在后台打开Use YUI compression?选项即可,后来我看了下源码,autoptimizeYUI.php

1
2
3
4
5
6
7
8
9
10
11
12
13
if(file_exists('/usr/bin/java') && file_exists(WP_PLUGIN_DIR.'/autoptimize/yui/yuicompressor.jar'))
{
//And we have a dir in where to work
if(is_writable(WP_PLUGIN_DIR.'/autoptimize/yui/'))
{
//Then we're available
return true;
}
}
}
//We can't use YUI :(
return false;
}

也就是程序会去判断/usr/bin/java是否存在,不存在就不会使用YUI了,而是用minify

而我上面安装jre时,没有把java放到这个目录下,也就是程序肯定找不到,就不会使用YUI了,那就为java在/usr/bin下创建个软链接就好

1
ln -s /usr/loacl/java/jre1.6.0_24/bin/java /usr/bin/java

这样就搞定了,不过我自己还是有个疑问,因为自己也不懂css和js,开启压缩后,查看网页源码,css和js都压缩,但是我怎么判断是否是YUI压缩出来的,还是minify压缩出来的?

如有高手请指教,另外,其实我不知道到底开启没,因为我自己手工运行是可以了,网上好像也没教程说autoptimize的YUI开启方法,所以自己这么做了,有错别找我,如果你验证成功,的确开启了,那还是一定要跟我说下方法是对的,谢谢了,哈哈

声明: 除非注明,小峰网络遨游记文章均为原创,转载请以链接形式标明本文地址

本博客原创文字只代表本人某一时间内的观点或结论,与本人所在公司没有任何关系。

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

第三方若用于商业用途的转载,须取得本人授权。

本文作者:

本文地址:http://xfeng.me/wordpress-use-autoptimize-yui-compress-css-js/

你可能还对下面文章感兴趣: