CSS dosyam, dosya türünde PHP değişkenlerini kullanabilmem için text/css
içerik türüyle sunulan bir PHP dosyasıdır. style.php
şuna benzer:dinamik css için önbellek başlıkları (PHP ile oluşturulur)
<?php
header('Content-Type: text/css');
$bgColor = '#000';
?>
body { background:<?php print $bgColor; ?>; }
beklendiği gibi çalışır, ancak tarayıcı dinamik olarak oluşturulan css dosyasını önbelleğe eğer ben biraz endişeliyim.
Firebug'daki isteklere baktığımda, sayfayı her yüklediğimde tarayıcının style.php
yeniden yüklendiğini görüyorum.
Zaten bu önbellek başlıkları eklemek çalıştı:
header('Cache-control: must-revalidate');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 60 * 60 * 24) . ' GMT');
Ama hiç şans. Sayfa her yüklendiğinde dosya hala yüklenir. Tarayıcıyı dosyayı belirli bir süre için önbelleğe almaya zorlamak için uygun başlıklar nelerdir? Bir dosya tarayıcıları tarafından önbelleğe alınmasını istiyorsanız, halka -denetimi başlığını belirlesin
HTTP/1.1 özelliklerine göre o-validate gerekir demek şimdi bu değil - önbelleğe alınmış içerik bayat hale gelmiştir sonra sona erer direktifleri doğrultusunda sadece (tekme gerekiyordu üstbilgi veya Cache-Control içindeki bir maksimum yaş değeri), ancak bazı tarayıcılar özellikleri göz ardı ediyor ve isteği yine de gönderiyor gibi görünüyor. Bağlantı doğrulanmadıkça 'kamu' gerçekten geçerli değildir. Expires başlığındaki zamanı güçlendirmek için 'Cache-Control: max-age = 86400' kullanırdım. –
@Brock Batsell: Yorum için teşekkürler! Bu açıkladı ve şimdi max-age = XXXX – Max
ile çalışır. Dosya içeriği değiştirilirse, istenen dosya güncellenmez. OP, içeriğin değişmesi durumunda dosyanın önbelleğe alınmaması gerektiğini ister. Dosya içeriği değişmemişse, önbelleğe alınmalıdır. Sağladığınız kod, "önbellekleme" özelliğini açar. OP'nin problemini çözmez. –