Bazı tarayıcıların (özellikle Firefox ve Opera) tarayıcı oturumları arasında bile .css ve .js dosyalarının önbelleğe alınmış kopyalarını kullanırken çok gayretli olduklarını fark ettim . Bu, bu dosyalardan birini güncellediğinizde bir soruna neden olur, ancak kullanıcının tarayıcısı önbelleğe alınmış kopyayı kullanmaya devam eder.
Soru şudur: Kullanıcının tarayıcısını değiştiğinde dosyayı yeniden yüklemeye zorlamanın en zarif yolu nedir?
İdeal olarak, çözüm, tarayıcıyı sayfayı her ziyarette dosyayı yeniden yüklemeye zorlamaz. Kendi çözümümü yanıt olarak göndereceğim, ancak daha iyi bir çözüm olup olmadığını merak ediyorum ve oylarınızın karar vermesine izin vereceğim.
Güncelleme :
Bir süre burada tartışmaya izin verdikten sonra, John Millikin ve da5id'in önerisinin yararlı olduğunu gördüm . Bunun için bir terim olduğu ortaya çıktı: otomatik versiyonlama .
Aşağıda, orijinal çözümümün ve John'un önerisinin bir kombinasyonu olan yeni bir cevap gönderdim.
SCdF tarafından önerilen başka bir fikir , dosyaya sahte bir sorgu dizesi eklemek olacaktır. (Zaman damgasını otomatik olarak sahte sorgu dizesi olarak kullanmak için bazı Python kodları pi ile gönderilmiştir .) Ancak, tarayıcının bir dosyayı sorgu dizesi ile önbelleğe alıp almayacağı konusunda bazı tartışmalar vardır. (Tarayıcının dosyayı önbelleğe almasını ve gelecekteki ziyaretlerde kullanmasını istiyoruz. Yalnızca dosya değiştiğinde dosyayı tekrar getirmesini istiyoruz.)
Sahte bir sorgu dizesi ile ne olduğu belli olmadığından, bu yanıtı kabul etmiyorum.
iframe.contentWindow.location.reload(true)
. Stackoverflow.com/a/22429796/999120 yöntemine (4) bakın - bu görüntülerle ilgilidir, ancak aynı şey geçerlidir.
ExpiresActive On ExpiresDefault "modification"
.