Bluehost是美國一個(gè)著名的主機(jī)商,以穩(wěn)定性著稱,全球有超過100萬個(gè)網(wǎng)站托管在那里詳細(xì)的介紹可以看魚叔的介紹。我使用Bluehost已經(jīng)有差不多兩個(gè)月了,從剛開始購入這款主機(jī)起我一直斷斷續(xù)續(xù)地對我的博客進(jìn)行優(yōu)化,使頁面的打開速度能得到提升。Bluehost對頁面?zhèn)鬏數(shù)膬?yōu)化比較怪,html文件默認(rèn)是進(jìn)行Gzip進(jìn)行壓縮的,但對CSS和JS文件不進(jìn)行壓縮,自己也不可以通過.htaccess文件讓mod_deflate對CSS和JS文件進(jìn)行壓縮。今天我們只需要使用mod_rewrite提供的功能就可以實(shí)現(xiàn)全站CSS和JS壓縮。
1.使用Minify庫進(jìn)行壓縮
Minify是Google Code上的一個(gè)開源項(xiàng)目(具體介紹可以看這個(gè)頁面),作者整合了國外多個(gè)專家的研究成果,形成了一個(gè)功能強(qiáng)大的庫,有很多大型站點(diǎn)也在使用這個(gè)庫進(jìn)行壓縮。
使用方法
首先下載Minify的最新版本,把壓縮包里的min目錄上傳到站點(diǎn)根目錄,然后打開.htaccess編寫rewrite rule:
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(.*.(css|js))$ min/index.php?f=$1&debug=0 [L,NC]
</ifmodule>
2.使用Combine.php進(jìn)行壓縮
Combine.php是一個(gè)不知名的國外開發(fā)者寫的一個(gè)小程序,同樣可以壓縮站點(diǎn)的CSS和JS文件,但與Minify相比Combine.php是超輕量級的,整個(gè)文件只有不到5K大小,大家可以點(diǎn)擊這里下載。下載后把文件上傳到網(wǎng)站根目錄,然后編寫rewrite rule:
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^css/(.*.css) /combine.php?type=css&files=$1
RewriteRule ^javascript/(.*.js) /combine.php?type=javascript&files=$1
</ifmodule>
后記
這兩個(gè)方法大家選其一使用,兩個(gè)方法都是在服務(wù)器對所有CSS和JS先進(jìn)行整合再傳輸,效率是比較高的,而且這兩個(gè)方法也適合其他不能直接通過mod_deflate進(jìn)行壓縮的主機(jī)。下面是我優(yōu)化前后的對比。
使用Gzip壓縮前文章頁面的JS文件總體積達(dá)到100+K之巨。
使用Gzip壓縮以后同一個(gè)頁面的JS總體積已經(jīng)被壓縮到不足40K。雖然效果不及采用mod_deflate好,但我為了減少服務(wù)器負(fù)載只進(jìn)行了輕度壓縮,兩個(gè)方法對于沒有mod_deflate的主機(jī)來說是個(gè)折中的方法。
關(guān)于Bluehost降低服務(wù)器負(fù)擔(dān)的方法可以看《BlueHost/HostMonster修改文件上傳大小限制和內(nèi)存不足》或Google其它優(yōu)化技巧,我要說的是:Bluehost是一款非常耐玩的主機(jī)。