2014-04-04 72 views
0

我有動態的CSS文件是這樣的:動態CSS沒有被瀏覽器緩存 - 響應返回200 OK,而不是304未修改

$Css = get_from($_u_6); 



/* do stuff and other things here... */ 



$expires = 60*60*24; 
header("Pragma: public"); 
header("Cache-Control: maxage=".$expires.", must-revalidate, public"); 
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT'); 
header('Content-type: text/css'); 


echo $Css; 

頁眉的設置是否正確: http://i.imgur.com/MIH7j5U.png

但服務器始終以HTTP 200 OK(以及正確的內容)迴應,而不是以HTTP 304(未修改)迴應。

我該如何說服瀏覽器和服務器緩存這些動態的css文件併發送304響應?

回答

1

Expires:標頭告訴瀏覽器或緩存服務器它可以在不重新加載源服務器的情況下繼續使用同一資源多久。

如果您希望瀏覽器,使有條件的請求(例如,使用If-Modified-Since:If-None-Match:),你需要發送一個Last-Modified:和/或ETag:頭,你需要編寫代碼來測試這些標題和生產適當的迴應(304200)。

請參閱RFC 2616RFC 7232瞭解詳細信息。

+0

RFC2616現已被[RFC 7230](http://tools.ietf.org/html/rfc7230),[RFC 7231](http://tools.ietf.org/html/rfc7231),[ RFC 7232](http://tools.ietf.org/html/rfc7232),[RFC 7233](http://tools.ietf.org/html/rfc7233),[RFC 7234](http:// tools。 ietf.org/html/rfc7234)和[RFC 7235](http://tools.ietf.org/html/rfc7235)。 –

相關問題