2010-11-26 96 views
0

我想重寫Etag查找,因爲顯然他們正在減慢頁面,因爲每個請求的延遲非常大!覆蓋ETag查找?

Expires頭似乎沒有這樣的伎倆......

什麼想法?

+1

你怎麼認爲這是ETags的錯? – deceze 2010-11-26 11:51:34

+0

我不知道爲什麼它仍然在查找...我給所有文件過期頭文件! :( – RadiantHex 2010-11-26 12:07:22

回答

0

在視圖的響應對象中,您可以將ETag設置爲任何你喜歡的。這要求您使用CommonMiddlewareUSE_ETAGS設置爲True。然而,如果你真正想要做的就是根本不調用視圖,爲什麼不使用緩存裝飾器並緩存結果呢?

The code for etag handling.

0

我希望人們會問的問題,說明他們正在運行Apache的版本。這可能很快就會令人困惑。看看FileETag指令(至少對於apache 2.0和2.2)。

FileETag沒有//不會爲一個文件生成和ETag

FileETag

0

每個請求是相當大的!

除非你有你的Apache安裝或非常怪異的文件系統一些非常時髦的定製補丁,產生ETAG的努力是不依賴於文件的大小 - 默認情況下Apache使用inode編號,模時間和大小。

通常情況下,有條件的請求實際上可以減慢一個站點 - 應該避免(最好通過剝離if-none-match/if-modified-since請求頭)。一次不是這種情況,你發佈非常大的文件(例如視頻,PDF)。如果你不能修改請求頭(例如使用Apache < 2.0),那麼你需要去掉ETag和最後修改的響應 - 或者定期刷新文件的時間戳。

'Expires'標頭是一個HTTP/1.0指令 - 有很少的HTTP/1.0流量在那裏 - 通常來自通過代理工作的配置錯誤的MSIE6瀏覽器)。您應該發送Cache-Control標頭。