2009-12-23 67 views
4

我想壓縮我的服務器上的CSS和JS文件,以最大限度地減少加載時間,問題。無需mod_gzip和mod_deflate壓縮CSS和JS

我的託管與Streamline.net(大錯誤,永遠不會去那裏)由於安全問題誰不會激活mod_gzip和mod_deflate。

有沒有人有另一種方式來壓縮這些類型的文件(和圖像文件太pos),而不去mod_gzip和mod_deflate的方式。

答案將非常受歡迎。

+0

您是否支持編程語言? – Gumbo 2009-12-23 13:31:39

+0

我不確定,我怎麼知道? – DanC 2009-12-23 13:45:37

+0

問問你的虛擬主機?他們可能有ASP或PHP – 2009-12-23 13:53:32

回答

2

您可以通過腳本運行您的文件,該腳本會爲您加密並添加適當的過期標題。 要麼建立一個URL重寫,或手動改寫網址:

<script src="js/somescript.js"></script> 

成爲

<script src="compress.php?somescript.js"></script> 

和compress.php,你可以這樣做

<?php 
$file = 'js/' . basename($_SERVER['QUERY_STRING']); 
if (file_exists($file)) { 
    header ('Last-Modified: ' . date('r',filemtime($file)); 
    header ('Content-Type: text/javascript'); // otherwise PHP sends text/html, which could confuse browsers 
    ob_start('ob_gzhandler'); 
    readfile($file); 
} else { 
    header('HTTP/1.1 404 Not Found'); 
} 

顯然,這可以還可以擴展到provide HTTP caching和/或即時縮小,進一步加快了訪問者的瀏覽速度。

+0

這聽起來很有趣,我會試試看,如果我的編碼完全失敗了,我會回報 - 歡呼! – DanC 2009-12-23 13:55:08

4

是的,答案是Minification

顯然,它不會壓縮多達gzipdeflate。但它有幫助,並且使用正確的工具很容易。

+0

+1撰寫。獨立於支持編程語言。 – Gumbo 2009-12-23 13:32:30

+0

我縮小了所有的JS和CSS,但也想壓縮它們,只是爲了最大化加載速度。 – DanC 2009-12-23 13:44:37

+2

@丹:我相信你已經考慮過這個,但你爲什麼不改變你的主人?它看起來生活您的要求超出了典型的「共享託管」提供。 – 2009-12-23 14:01:11

0

大多數編程語言都支持一些數據或文件壓縮格式,如ZLIB或GZIP。因此,您可以使用編程語言以這些格式之一壓縮文件。

1

就像一個旁註:如果壓縮圖像已經以壓縮格式保存,並且對用戶來說仍然看起來不錯,那麼壓縮圖像將不會有好處。

+0

可能是一個好點,歡呼指出 - 我在這裏瘋狂了一下頁面速度! – DanC 2009-12-23 13:48:39

+0

這將是很好,如果你可以再次重新壓縮相同的文件,直到它可以用一個單一的位傳輸,不是嗎? ;-) – 2009-12-23 13:52:33

+0

它會非常棒! yslow 100/100在這裏我們來了! – DanC 2009-12-23 13:55:41

2

而不是讓mod_gzip動態地gzip你的CSS和JavaScript文件,你可以自己gzip,然後上傳它們。

這會在您上傳CSS和JavaScript之前引入另一個步驟,但它可以工作,甚至可以爲每個請求節省一點服務器處理時間,而不是mod_gzip。

在Mac OS X,使用gzip壓縮在命令行上的文件是,例如:

gzip -c styles.css > styles-gzip.css 

確保這些文件會用正確的內容類型標題擔任,雖然一樣簡單。

+0

雖然今天比較少見,但當IE6(其支持gzip *幾乎可用*)在gzip文件中斷時,您會做什麼? – Piskvor 2009-12-26 19:23:34

+0

@Piskvor:檢查瀏覽器發送的HTTP頭。如果'Accept-Encoding:gzip,deflate'不存在,則發送一個非gzip版本的文件。 – Geert 2009-12-26 19:29:25

+0

「當IE6在gzip文件中斷時,你會怎麼做?」我必須承認,我沒有足夠的經驗來遇到這種情況。 – 2009-12-27 13:25:45