Minify壓縮JS和CSS

來源:互聯網
上載者:User

標籤: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代碼  
  1. $min_serveOptions[‘minApp‘][‘allowDirs‘] = array(‘//js‘, ‘//themes/default‘);  


"組":更快的效能和更好的網址 
為了獲得最佳效能,編輯groupsConfig.php中的預指定檔案組,下面是一個例子配置: 
Php代碼  
  1. return array(  
  2.     ‘js‘ => array(‘//js/Class.js‘, ‘//js/email.js‘)  
  3. );  

以上預指定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代碼  
  1. return array(  
  2.   ‘js‘ => array(  
  3.     ‘//js/file.js‘            // file within DOC_ROOT  
  4.     ,‘//../file.js‘           // file in parent directory of DOC_ROOT  
  5.     ,‘C:/Users/Steve/file.js‘ // file anywhere on filesystem  
  6.   )  
  7. );  

未來到期HTTP頭 
Minify可以發送未來(一年)到期HTTP頭。要啟用該功能,您必須添加一個數字到URIs(例如/min/?g=js&1234 or /min/f=file.js&1234),每當源檔案修改時改變該數字。如果你使用SVN/CVS,你可以考慮使用修訂版號作為該數字。 

如果使用"組"來合并壓縮你的檔案,可以使用工具函數Minify_groupUri()來得到一個“版本”的URI。例如: 
Php代碼  
  1. <?php  
  2. // 之前確保min/lib目錄設定到include_path  
  3. // add /min/lib to your include_path first!  
  4. require $_SERVER[‘DOCUMENT_ROOT‘] . ‘/min/utils.php‘;  
  5. $jsUri = Minify_groupUri(‘js‘);   
  6. 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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.