2011-08-15 146 views
2

我在我的網站上實現了與服務器無關的eTags,現在我正在考慮添加過期標頭以防止大部分304請求。關於處理expires頭文件,etags和內容更新的想法?

我很關心使用長過期標題,因爲如果您需要更新內容,它很難強制刷新。而且我也不會弄亂我的代碼版本的查詢字符串一樣的忠實粉絲:

<link rel="stylesheet" type="text/css" href="/style.css?version=X" /> 

所以我想設置過期標頭的東西像短10分鐘,幾乎所有的東西。這樣,我只有10分鐘的陳舊內容窗口,但對於正常的瀏覽會話,我將停止大部分304。即使他們停留的時間更長,除非內容發生變化,否則我將每10分鐘提供一次304。

它看起來很漂亮,但我見過很多使用上述版本控制querystring方法的網站,甚至谷歌的mod_pagespeed有一個選項可以或多或少地自動進行版本控制,所以我只是好奇這是否是一個或者如果我錯過了一些不切實際的東西。

感謝

回答

1

而且我也不會弄亂我的代碼版本的查詢字符串一樣的忠實粉絲:

爲什麼?沒有人看到它,並且可以輕鬆自動化它 - 讓CMS或框架自動將文件修改時間或md5哈希值附加到鏈接標記。

+1

對於單個CSS文件,它不會是世界的盡頭,但是如果我需要更新該文件中的css背景或網站中其他位置的圖像,該怎麼辦?將?version = X添加到每個資源將會很難看。 – user126715

+1

發生不需要的HTTP請求也很難看。 – ceejayoz

+1

我同意。大多數情況下,你的圖片不會改變,所以這可能是CSS版本流行的原因。我想我寧願有一個我可以用於所有靜態(ish)資源的解決方案。除非我手動維護它們,或者在服務之前對文件進行了一些處理,否則沒有好的辦法將CSS背景的散列直接附加到CSS文件中。 – user126715