Saya menggunakan lighttpd untuk melayani file statis. Saya memiliki banyak gambar dalam direktori yang saya perbarui secara berkala. Ini akan mengubah konten file (dan filesize) serta tanggal modifikasi, tetapi bukan nama file mereka.
Ketika saya mengakses file melalui http, pembaruan tidak diperhitungkan dan ringan melayani file lama. Saya dapat secara manual mengubah nama file menjadi sesuatu yang berbeda, maka lighttpd akan mengembalikan kesalahan 404, dan jika saya mengganti nama file saya kembali, saya akan mendapatkan versi terbaru yang benar. Sepertinya lightty menggunakan semacam mekanisme cache sendiri (yang baik-baik saja) untuk mengembalikan file statis. Sayangnya, tampaknya mekanisme ini tidak memperbarui sendiri ketika file diubah.
Saya memeriksa melalui Wireshark, dan browser saya benar-benar melakukan permintaan ke file, ini bukan masalah caching browser. Ini mengembalikan 200 OK ketika memintanya dari cache kosong, dan 304 Tidak Diubah sebaliknya, seperti yang diharapkan. Tetapi file dikembalikan dengan header Modifikasi Terakhir yang salah yang tidak mencerminkan tanggal modifikasi terakhir yang sebenarnya.
Mungkin ada beberapa petunjuk konfigurasi yang tidak saya sadari?
Saya ingin file yang dikembalikan oleh lighty mencerminkan perubahan yang dibuat pada disk secara langsung, atau setidaknya bisa membatalkan cache-nya.
Pembaruan untuk siapa pun yang mengikuti pertanyaan ini: Saya menemukan pelakunya. Jika saya memperbarui file statis, Lighty tidak mengembalikan konten baru, tetapi mengembalikan panjang konten baru di header, menghasilkan sampah yang ditampilkan. Jika saya kompres file menggunakan mod_compress, masalah hilang karena mod_compress menggunakan sistem caching sendiri. Sayangnya, saya tidak dapat memampatkan semua file (misalnya file gambar). Jadi itu hanya perbaikan parsial, tapi saya akan kembali lagi nanti dan dengan senang hati akan menemukan solusi.