2011-07-14 51 views
6

我們網站的favicon.ico文件在多年內沒有變化 - 而且不會很快改變 - 所以我想配置IIS以便爲它提供遠期緩存過期頭文件。我網站的根文件夾中的其餘內容是不應緩存的動態頁面 - 但據我所知,IIS只允許您在每個文件夾的基礎上設置內容過期緩存 - 所以有爲favicon.ico設置緩存頭的方式,而不影響主目錄中的其餘內容?如何讓IIS爲我的favicon.ico發佈緩存標頭?

回答

9

是的 - 深入文件。

在IIS管理器(在IIS6上),導航到文件,右鍵單擊,屬性,HTTP標題選項卡,選中啓用內容過期;派對與其他設置。

對於IIS7說明和此代碼段的Dylan(以下)的榮譽。

這會在web.config中創建以下部分,因此您可以直接通過編輯文件來實現同樣的目的。

<configuration> 
    <location path="favicon.ico"> 
    <system.webServer> 
     <staticContent> 
     <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="90.00:00:00" /> 
     </staticContent> 
    </system.webServer> 
    </location> 
</configuration> 
+1

太棒了。有一點 - 我無法右鍵單擊文件並查看屬性,但在內容視圖中突出顯示後,favicon.ico出現在左側的導航樹中,然後我可以突出顯示它並單擊「HTTP響應頭「圖標就像我可以在常規文件夾中一樣。 在IIS7中,配置存儲在web.config中,因此我已經將由此過程實際創建的XML片段添加到答案中。 –

+0

然後它是一個版本的東西。我的'正確的'服務器是IIS6,所以這是我驗證我的方法。我的Win7筆記本電腦有IIS7,你的方法工作。我發現了一個額外的輕微扭曲 - 在Content View中突出顯示並發現沒有任何屬性 - 我看到警告消息說我必須移動到Features View。一旦出現,就像你一樣,它在左側的樹視圖中。編輯答案。 – RichardHowells

+8

我更新我的web.config文件與此片段,並通過查看YSlow,它仍然出現(沒有過期)。我正在使用IIS 7。 –