2011-11-21 26 views
2

我剛剛在我的項目中使用Combres庫來縮小css和js文件,並基本上優化了頁面。我讀過關於Combres的書籍,我看到它將etags與它優化的資源一起發送,但當我發佈我的項目時,Combres壓縮的資源沒有etags。有什麼配置,我需要做出這個工作?我正在使用Windows Azure來部署我的項目(如果它很重要)。Combres不會將etag放在內容上,爲什麼?

我將不勝感激這個問題的幫助。

回答

3

您可能會通過Combres之外的某種方式禁用etags(例如http模塊)。根據您使用的是IIS6還是IIS7.5,有不同的技術來刪除etags。有些人已經在特定場景下的web.config中完成了它(我認爲對於經典應用程序池)。你可以在你的web.config中搜索'etag',看看裏面是否有任何東西。如果它不在你的web.config中,搜索你的Web項目'etag',看看你是否將它們移出IHttpModule。

而且你花之前太多的時間在這個,你可能會考慮反正遺忘的ETag。它們有點「過時」且過時。這個想法是,在版本化文件上達到很長的到期日期就足夠了。如果訪問者/用戶清除了他們的緩存,那麼就不會有任何舊的etag與之比較。如果你更新你的梳理資源,它會吐出一個新的版本化路徑,它不會與舊的緩存文件的etags進行比較。所以無論如何,你真的不會從當前技術的etags中受益。

事實上,很多人因爲缺乏實用性和浪費帶寬而不得不去除它們。 (這可能是你爲什麼沒有它們的原因。過去你可能做過的一些性能調整可能會在可能時禁用它們。)

+0

真的嗎?這很有趣...我認爲etags被推薦使用resoruces版本,並通過顯示可以從高速緩存insteead中再次下載某些資源來最小化帶寬使用情況?如果不是另一種方式做到這一點? 老實說,我對該主題感興趣的原因只是因爲我在「Google Page Speed」測試程序中測試了我的網站,並且它告訴我應該在資源中添加etags或Last-Modified標頭。這似乎相當令人信服,這種事情可能允許瀏覽器找出資源是否應該再次下載或不... – domderen

+0

資源版本控制最好通過更改請求路徑或更好的資源文件名來完成。這是因爲某些高速緩存代理服務器和其他中介互聯網設備不理解etags,但會理解高速緩存控制標頭。許多服務器平臺也錯誤地實現了etags,使得它們不那麼值得信賴。 Combres會在更新時爲您更改資源集URL,併發出過期和緩存控制標頭,使etags變得冗餘。 – BenSwayne

+0

謝謝你的回答。我想現在我會知道如何利用緩存控制。賞金送來;] – domderen

相關問題