Wordpress 提速之 Gzip 压缩
今天來聊下 wordpress 提速,其實關于這方面的話題網上其實蠻多的,速度對一個網站來說無疑是非常重要的,對于速度的追求也是無止境的,在這方面的表率無疑就是 shawn 了,看他博客的很多技巧都是針對速度來的……不過話說回來,速度也不是絕對的,看很多優秀的博客速度并不占優,有時候追求速度難免還會犧牲一些其它的東西!!此文僅供參考。
廢話少說,關于 wordpress 的提速還是可以從很多方面入手的,因為 WP 的靈活而導致其效率和速度的下降,比如因為使用插件而在頭部載入的 N 多的 JS 和 CSS 就是最為典型的,就不展開說了,今天我們只說 Gzip!
什么是 Gzip 壓縮,為什么要用 Gzip 壓縮
說白了就是一種壓縮的技術,它將瀏覽器請求的文件在服務器端進行壓縮,然后將文件以壓縮的形式傳遞給瀏覽器,然后在瀏覽器端進行解壓縮,還原后進行解析。而目前 99% 的瀏覽器都支持 Gzip ,包括 IE 4+, Netscape 4+, Opera 5+ 和所有版本的 Safari 和 Firefox ,所以大家可以放心使用。
在這里我們的壓縮對象是所有的 html、JS、和 CSS 。而他的壓縮效率驚人,能減小 60% 到70%。像我的博客一個 10K 的 JS 文件,用 Gzip 壓縮后瀏覽器接收的只有 3K 大小,16K 的 CSS 文件也被壓縮到了 5K,很強大吧!
怎么知道我的頁面是否 Gzip 壓縮過了
Gzip 的方法有很多種,而有很多的服務器是默認開啟 Gzip 壓縮的,不過據我所知,這種服務器少之又少。怎么確定自己的網頁是否被 Gzip 呢!!這種測試的網站網上也很多,不過一般只能測試 html,這里推薦給大家一個測試的網站:Websiteoptimization,輸入網址后,輸入驗證碼,就會給出你的 Web Page Speed Report.
貌似很多的“童鞋”看錯了,現在補圖上來!!其中在下面的 Page Objects 中,會給出所有所加載的文件的信息。在最后一欄的信息中,如果顯示:Congratulations! This file was compressed. 說明是被壓縮過的,如果是:Up to **** bytes could have been saved through compression,顯然是還沒被壓縮的。
啟用 Gzip 的幾種方法
是的,有幾種方法,是針對不同的情況的。
1、最好的情況是你的主機采用的是 Apache 2,并安裝啟用了mod_deflate 模塊。這樣就很簡單了,只需要在 .htaccess 文件中加入以下代碼可以壓縮 HTML, PHP, JS, CSS, XML 后綴的文件。
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript
</ifmodule>
不過一般的主機都沒有這個模塊,如果你是獨立主機可以自行配置。至于如何檢測自己的主機是否有安裝這個模塊,我還真沒找到辦法,望高手指點。如果大家有興趣,可能將上面的代碼加好,看是否 Gzip 來試一下!以上方法來自:我愛水煮魚
<?php
$allowed = array (
'css'=>'text/css',
'js'=>'text/javascript',
'html'=>'text/html',
'htm'=>'text/html',
);
$file = isset ($_GET['url'])?$_GET['url']:null;
$extension = explode('.', $file);
$extension = array_pop($extension);
if ( isset ($allowed[$extension]))
{
$pos = strpos($file, '..');
if ($pos === false && is_file($file))
{
@ob_start('ob_gzhandler');
header("Content-type: {$allowed[$extension]};
charset:UTF-8 ");
readfile($file);
}
else {
header('HTTP/1.1 404NotFound ');
}
}
?>
2、用 PHP 來壓縮
此方法也需要 PHP 模塊 zlib 的支持,不過這是一個基本的模塊,一般都開啟了!!所以我們主要講下這部分。
用 PHP 壓縮動態頁面
我們先來看所謂的 html 的壓縮,其實也就是由 PHP 動態生成的 html 。這樣的方法有很多,我用的是 shawn 的方法 ,還有 幾種方法 供參考。
用 PHP 壓縮 JS 和CSS
關于 JS 和 CSS 的壓縮也有幾種方法,目前比較多的是像 K2 學習,將 JS 和 CSS 改為 .php 的方法。這個前輩已經介紹過了,請移步:簡述對WP博客樣式表和JS腳本的壓縮
這種方法的缺點是要修改每個 JS 和 CSS 文件,有點不太方便。對于將所有插件中的 JS 和CSS 都合并的博客來說還算容易,但沒有合并的來說無疑是一項巨大的工程,而且插件更新也是件麻煩的事。另外看著好好的 CSS 文件變成了 PHP ,看著挺怪的,呵呵!!好處是有好的適應性,因為這 K2 用的方法!
第二種方法是老N提供的方法:加速blog,壓縮js,css,減省帶寬 ,這種方法應該說比較簡單,而且默認對所有的 JS 和 CSS 生效。原理就是把 JS 和 CSS 利用 .htaccess 交給一個 PHP 文件來處理進行壓縮。
老N那的代碼貌似復制出來有些問題,我再貼一下,呵呵:
1、創建 gzip.php 文件并上傳到博客根目錄,代碼如下:
下載: gzip.php2、更改.htaccess文件,在.htaccess中添加:
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} ^.*\.(css|js|html|htm)$
RewriteRule ^(.*)$ gzip.php?url=$1 [QSA,L]
就 OK 了~,的確很簡單
但上面兩種方法還有一個問題,就是會吃服務器的資源,占用一定的 CPU 和內存,因為每次訪問頁面都要執行一下。但具體吃到什么程度,我就不清楚了,據說在服務器資源緊張的情況下壓縮的效率會比較低,不過我想一般大型的主機提供商的主機還是不會有什么問題的。
第三種我們來看 輻射魚提供的方法
1. 下載 Gzip.php 文件并上傳到你的Wordpress安裝目錄
2. 在你的 Wordpress 根目錄建立 wp-cache 文件夾并確保其可寫入
3. 在.htaccess里面加上
RewriteRule (.*.css$|.*.js$) gzip.php?$1 [L]
即可
也非常的簡單,而且此種方法的優點是:自動讀取并 gzip 壓縮 css 和 js,訪問時直接調用生成的 .gz 文件,節約帶寬也不占用服務器資源,但不適用空間下安裝了多個 Wordpress 的博友,可能導致二級目錄下的某些 WordPress 無法加載 CSS 樣式。這些都是輻射魚的原話,呵呵!另外就是當 CSS 和 JS 有更新時要手動清除緩存才行。符合條件的同志推薦用這種方法!!
終于寫完了,看來目前還沒有很完美的解決方案,大家可以根據自己的實際情況來選擇用哪種方法,以上資料僅供參考,有問題請留言!!
職場 休閑 Wordpress0
微博 QQ 微信收藏
上一篇:在WordPress的Feed中... 下一篇:WordPress函數詳解之Wp... veckie982篇文章,4W+人氣,0粉絲
轉載于:https://blog.51cto.com/veckie9/811289
總結
以上是生活随笔為你收集整理的Wordpress 提速之 Gzip 压缩的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node.js读写文件操作
- 下一篇: 计算机如何取消自动关机,如何取消自动关机