Statik dosyaları sunmak için lighttpd kullanıyorum. Bir dizinde düzenli olarak güncellediğim bir sürü görüntü var. Bu, dosya içeriğini (ve dosya boyutunu) ve değişiklik tarihini değiştirir, ancak dosya adlarını değiştirmez.
Dosyalara http üzerinden eriştiğimde, güncellemeler dikkate alınmaz ve eski dosyaya hafifçe hizmet eder. Dosyayı farklı bir şeye elle yeniden adlandırabilirim, o zaman lighttpd bir 404 hatası döndürür ve dosyamı yeniden adlandırırsam, doğru güncellenmiş sürümü alırım. Lightty, statik dosyaları döndürmek için kendi başına bir önbellek mekanizması kullanıyor (iyi). Ne yazık ki, dosyalar değiştirildiğinde bu mekanizmanın kendini güncellemediği anlaşılıyor.
Wireshark'ı kontrol ettim ve tarayıcım dosyaya gerçekten bir istekte bulunuyor, bu bir tarayıcı önbellekleme sorunu değil. Boş bir önbellekten istendiğinde 200 OK değerini, aksi takdirde beklendiği gibi 304 Değiştirilmedi değerini döndürür. Ancak dosya, gerçek son değişiklik tarihini yansıtmayan yanlış bir Son Değiştirme Tarihi üstbilgisi ile döndürülür.
Belki farkında olmadığım bazı yapılandırma yönergeleri vardır?
Lighty tarafından döndürülen dosyaların doğrudan diskte yapılan değişiklikleri yansıtmasını veya en azından önbelleğini geçersiz kılabilmesini istiyorum.
Bu soruyu takip eden herkes için güncelleme: Bir suçlu buldum. Statik bir dosyayı güncellersem, Lighty yeni içeriği döndürmez, ancak başlıklarında yeni Content-Length değerini döndürerek çöp görüntülenmesine neden olur. Mod_compress kullanarak dosyayı sıkıştırırsam, mod_compress kendi önbellek sistemini kullandığından sorun ortadan kalkar. Ne yazık ki, tüm dosyaları (örneğin görüntü dosyaları) sıkıştıramıyorum. Bu yüzden sadece kısmi bir düzeltme, ama daha sonra geri döneceğim ve umarım bir çözüm bulacağım.