2012-06-10 93 views
3

我有大量的JS,圖像文件的網頁。當第二次加載頁面時,304請求會發送到服務器。我想獲得HTTP 200(緩存)狀態緩存的對象,而不是304如何從緩存中獲取圖像,CSS,JS(使用http狀態200(緩存)不是304)

我使用asp.net 4,IIS 7

設置到期頭不工作,但它仍然發送304個請求。我想要http狀態200(緩存)。

請讓我知道是否有任何技術。

+0

304和200是響應狀態,而不是請求類型。 200的意思是「好吧,你走吧」。 304表示「您已經擁有最新版本,請使用緩存」。你的問題沒有任何意義。 – Quentin

+0

你能詳細說明原因嗎? –

+0

如果您正確設置緩存標頭,瀏覽器將不會發出請求。因此,您需要閱讀正確的緩存標頭以發送,等等。如果您無法正常工作,請**顯示**您正在做什麼(不要描述它,顯示代碼)和人員可以指出你的錯誤。 –

回答

2

你曾經說過,設置失效並沒有幫助,但是如果你設置了正確的標題,它確實會有幫助。

下面是一個很好的例子:Google的圖書館託管。這裏是(相關)報頭,如果你問一個完全限定版本的庫(如jQuery的1.7.2,jQuery的沒有1 ,或jQuery的1.7。)谷歌發回:

Date:Thu, 07 Jun 2012 14:43:04 GMT 
Cache-Control:public, max-age=31536000 
Expires:Fri, 07 Jun 2013 14:43:04 GMT

Date並不真正相關,我只是將它包含在內,以便您知道何時生成了以上標題。)在那裏,如您所見,Cache-Control已明確設置爲一年的max-age,並且Expires標題還指定從現在起一年的有效日期。後續訪問(一年內)到同一個完全限定的庫甚至不會導致對服務器的If-Modified-Since請求,因爲瀏覽器知道緩存副本是新鮮的。

This description緩存HTTP RFC 1.1在RFC 2616應該有所幫助。

+0

是的,我想要有類似的行爲爲我的網站。我想,後續訪問相同的完全限定庫不應導致304「If-Modified-Since」。你知道這是否有任何技術? – user1233802

+0

@ user1233802:是:在響應中設置標題(例如,配置您的Web服務器,以便以這種方式發送要處理的文檔的正確緩存標頭)。 –

相關問題