標籤:http java 使用 os strong 檔案 io art
Minify把CSS和JS壓縮和削減(Minify:去掉空格斷行符號符等),以及把多個CSS,JS檔案整合到一個檔案裡。不要以為你的大頻寬沒有必要進行這類最佳化。使用它的理由更重要的是檔案合并,而不是壓縮,而是檔案整合,這樣可以減少瀏覽器端不斷髮出新的串連請求,就像FTP伺服器一樣,多個小檔案和一個大檔案耗時是不一樣的。
Minify是用PHP寫的,項目地址 http://code.google.com/p/minify/
安 裝
1. 下載最新的Minify然後解壓縮到minify目錄。
2. 複製"min"目錄到你的DOCUMENT_ROOT.
基本用法
假設你有http://localhost/a.js,http://localhost/b.js兩個檔案。那麼現在,你可以使用http://localhost/min/?f=a.js,b.js,看看瀏覽器返回結果,是不是minify的兩個js檔案的內容?
附譯min目錄下的README.txt
引用
該目錄中的檔案包含預設Minify設定,旨在簡化整合您的網站。Minify將合并削減JavaScript或CSS檔案,並進行HTTP壓縮和緩衝頭。
推 薦
建議修改config.php中設定$min_cachePath到一個PHP可寫目錄。這將提高效能。
GETTING STARTED
最快的開始Minify的方法是使用Minify Builder應用程式的URI
訪問您的網站:http://example.com/min/builder/
壓縮單個檔案
比方說,你要服務於這個檔案:
http://example.com/wp-content/themes/default/default.css
下面是“Minify網址”該檔案:
http://example.com/min/?f=wp-content/themes/default/default.css
換句話說,“f”參數設定為從WEB根路徑下的目標檔案(不需要路徑/)”。由於CSS檔案可能包含相對URI,Minify會自動通過重寫機制找到它們。
合并多個檔案到一個檔案下載
用‘,‘分隔f參數的每一個檔案名稱。
比如,有如下CSS檔案:
http://example.com/scripts/jquery-1.2.6.js
http://example.com/scripts/site.js
您可以通過Minify結合起來:
http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js
簡化基本路徑
如果你合并的檔案分享權限設定同一父目錄,你可以使用b參數設定的f參數的基本目錄(同樣不包括前置或者尾碼/字元)。
例如,以下兩種寫法效果相同:
http://example.com/min/?f=scripts/jquery-1.2.6.js,scripts/site.js,scripts/home.js
http://example.com/min/?b=scripts&f=jquery-1.2.6.js,site.js,home.js
在Html中使用MINIFY
在(X)HTML檔案,不要忘記將&替換為&
指定允許的目錄
預設情況下,Minify不會有任何DOCUMENT_ROOT範圍內的*.css/*.js檔案。如果你希望限制Minify存取某些目錄,在config.php中設定
$min_serveOptions [‘minApp‘] [‘allowDirs‘]數組。例如:限制到/js和/themes/default目錄,使用:
Php代碼
- $min_serveOptions[‘minApp‘][‘allowDirs‘] = array(‘//js‘, ‘//themes/default‘);
"組":更快的效能和更好的網址
為了獲得最佳效能,編輯groupsConfig.php中的預指定檔案組,下面是一個例子配置:
Php代碼
- return array(
- ‘js‘ => array(‘//js/Class.js‘, ‘//js/email.js‘)
- );
以上預指定js將結果是合并了如下檔案:
http://example.com/js/Class.js
http://example.com/js/email.js
現在,您可以如此簡化URL:
http://example.com/min/?g=js
組:指定document_root目錄以外的檔案
在groupsConfig.php陣中,//是指向DOCUMENT_ROOT,但你也可以指定從系統的絕對目錄路徑或相對於document_root的相對目錄:
Php代碼
- return array(
- ‘js‘ => array(
- ‘//js/file.js‘ // file within DOC_ROOT
- ,‘//../file.js‘ // file in parent directory of DOC_ROOT
- ,‘C:/Users/Steve/file.js‘ // file anywhere on filesystem
- )
- );
未來到期HTTP頭
Minify可以發送未來(一年)到期HTTP頭。要啟用該功能,您必須添加一個數字到URIs(例如/min/?g=js&1234 or /min/f=file.js&1234),每當源檔案修改時改變該數字。如果你使用SVN/CVS,你可以考慮使用修訂版號作為該數字。
如果使用"組"來合并壓縮你的檔案,可以使用工具函數Minify_groupUri()來得到一個“版本”的URI。例如:
Php代碼
- <?php
- // 之前確保min/lib目錄設定到include_path
- // add /min/lib to your include_path first!
- require $_SERVER[‘DOCUMENT_ROOT‘] . ‘/min/utils.php‘;
- $jsUri = Minify_groupUri(‘js‘);
- echo "<script type=‘text/javascript‘ src=‘{$jsUri}‘></script>";
偵錯模式
在偵錯模式下,Minify不壓縮檔,而是發送合并後的帶有行號的檔案。要啟用該模式,在config.php中設定為$min_allowDebugFlag為true,並增加"&debug=1" 到你的URIs.
例如:/min/?f=script1.js,script2.js&debug=1
註:對於該模式,注釋風格的字串Regex可能會導致問題。
更多問題請訪問 http://groups.google.com/group/minify