2010-04-30 57 views
2
  1. 我開始新的網站,並會包括一些JS庫和想知道的.htaccess文件模板看起來應該像緩存的媒體和JS文件上?通過.htaccess緩存Apache服務器端文件?

  2. 請告訴我壓縮更好,的GZip減縮

  3. 更好/更快的解決方案可以將這些JS庫從Google CDN中提取出來,然後在本地進行處理?

我問CDN的問題,因爲一些腳本擔任過GoogleCDN都可能要更新,並最終打破了網站佈局,所以我認爲這將是更好地爲我在本地緩存和Web服務器通過託管,如果他們的將以相同/接近相同的速度工作。

+0

真的嗎?任何人? – dzhi 2010-05-01 11:41:33

+0

1.您需要更具體地考慮您想要的緩存類型。你打算使用mod_cache還是隻爲媒體和js文件設置HTTP標頭? 2.你也許可以在SO上搜索deflate vs gzip上的答案,或者閱讀關於差異的維基百科帖子。順便說一句,gzip基於deflate算法。 – Boris 2010-05-10 04:25:27

回答

0

(對不起代表過低張貼評論)

在包括一些js文件的條款有一些事情,你應該記住重新建立網站。首先,這些文件中的每一個都是一個請求,如果您提供服務,這些請求將在服務器上產生一些開銷。即使在cdn上,它仍然是客戶需要製作的請求。如果你有你的網站設置說一個cookie,那麼每個請求會有更多的開銷,因爲它。我提到這是因爲你的緩存,因爲你問CDN。我的意思是你應該首先考慮你要從哪裏提供內容然後緩存。就我個人而言,我已經設置了第二個子網址來提供這種類型的內容,所以static.website.com。通過這種方式,內容在請求中的開銷較小,您可以利用parellel下載。所以,重新谷歌CDN,是的,如果你有大部分東西在那裏。如果你擔心它改變或想在本地託管它,那麼我建議你爲此設置一個免費的cookie域。

這使我緩存和壓縮。如果你有很多文件,那麼你可能要考慮將它們合併成一個文件並提供。我所做的是獲取我們使用的15個左右的js文件,將它們全部放入一個文件中並散列,並將散列作爲文件名。 (請注意,這是我在部署之前爲構建步驟編寫的一個小東西)。這樣,如果任何文件發生變化,那麼散列值將發生變化,您將立即爲新內容提供服務。緩存一年的js文件的danager是,除非您更改它的名稱,否則您無法控制客戶機獲取新文件。這些都是需要記住重新設置緩存和cdn和多個js文件

就我個人而言,我將所有js文件合併爲一個,然後將它們壓縮到最小文件(ajax minifier),然後使用它。我爲css文件做同樣的事情。這是一個子域,並在那裏服務。

在Apache中我有以下幾點:

# Enable memory caching 
CacheEnable mem/
# Limit the size of the cache to 50 Megabyte 
MCacheSize 51200 
AddOutputFilterByType DEFLATE application/x-javascript 
ExpiresActive On 
ExpiresDefault "access plus 1 second" 
# hashed file so safe for long out cache 
ExpiresByType text/javascript "access plus 1 years" 

隨着廢話負載更多...但你的想法

最後一點,如果你正在建設一個移動網站,你真的必須記住保持帶寬成本低的關鍵。這是如何影響答案的?那麼對於我的移動網站,我只有2-3個自定義js文件,我以相同的方式提供服務,但對於jquery-mobile服務,我從官方的回購服務中獲得。爲什麼?因爲客戶端的移動設備已經將其緩存,因此可以爲它們節省帶寬。對於桌面我並不在乎,但這對移動世界有很大的影響。

我希望這種幫助,讓我知道,如果你需要的東西更多信息,

乾杯

羅賓