我的CSS文件是一個PHP文件,它提供了內容類型text/css
,以便我可以在該文件中使用PHP變量。 style.php
看起來是這樣的:動態css緩存頭(通過PHP生成)
<?php
header('Content-Type: text/css');
$bgColor = '#000';
?>
body { background:<?php print $bgColor; ?>; }
它正常工作,但我有點擔心,如果瀏覽器緩存動態創建的CSS文件。
當看着螢火蟲的請求,在我看來,瀏覽器每次重新加載頁面時都會重新加載style.php
。
我已經嘗試添加這些緩存頭:
header('Cache-control: must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 * 24) . ' GMT');
,但沒有運氣。該文件在每次加載頁面時都會加載。什麼是適當的標題爲了強制瀏覽器緩存文件一段時間?
根據HTTP/1.1規範,這不是必須-驗證的解釋是: - 它應該只是一個踢緩存的內容已經變得陳舊後(所指示的過期頭部或Cache-Control中的最大年齡值),但是某些瀏覽器似乎忽略了規範併發送請求。然而,'public'並不適用,除非連接被認證。我會使用'Cache-Control:max-age = 86400'來加強Expires頭部中的時間。 – 2010-03-07 08:41:15
@Brock Batsell:感謝您的評論!澄清它,它的工作現在最大年齡= XXXX – Max 2010-03-07 09:11:41
如果文件內容改變,所請求的文件將不會被更新。如果內容改變,OP請求文件不應該被緩存。如果文件內容沒有改變,那麼它應該被緩存。 您提供的代碼打開「緩存」功能。它不能解決OP的問題。 – 2014-12-09 14:30:40