Zauważyłem, że niektóre przeglądarki (w szczególności Firefox i Opera) bardzo gorliwie używają buforowanych kopii plików .css i .js , nawet między sesjami przeglądarki. Prowadzi to do problemu podczas aktualizacji jednego z tych plików, ale przeglądarka użytkownika nadal korzysta z kopii w pamięci podręcznej.
Pytanie brzmi: jaki jest najbardziej elegancki sposób zmuszania przeglądarki użytkownika do ponownego załadowania pliku po jego zmianie?
Idealnie, rozwiązanie nie zmusiłoby przeglądarki do ponownego ładowania pliku przy każdej wizycie na stronie. W odpowiedzi opublikuję własne rozwiązanie, ale jestem ciekawy, czy ktoś ma lepsze rozwiązanie, i pozwolę, aby głosowanie zdecydowało.
Aktualizacja :
Po dłuższej dyskusji tutaj znalazłem przydatną sugestię Johna Millikina i sugestii da5id . Okazuje się, że istnieje na to termin: automatyczne wersjonowanie .
Poniżej zamieściłem nową odpowiedź, będącą połączeniem mojego oryginalnego rozwiązania i sugestii Johna.
Innym pomysłem zasugerowanym przez SCdF byłoby dodanie do pliku fałszywego ciągu zapytania. (Niektóre kody Pythona do automatycznego używania znacznika czasu jako fałszywego ciągu zapytania zostały przesłane przez pi .). Trwa jednak dyskusja, czy przeglądarka buforuje plik z ciągiem zapytania. (Pamiętaj, że chcemy, aby przeglądarka buforowała plik i używała go podczas przyszłych wizyt. Chcemy, aby pobierał plik ponownie tylko po jego zmianie).
Ponieważ nie jest jasne, co dzieje się z fałszywym ciągiem zapytania, nie akceptuję tej odpowiedzi.
iframe.contentWindow.location.reload(true)
. Zobacz metodę (4) stackoverflow.com/a/22429796/999120 - dotyczy to obrazów, ale to samo dotyczy.
ExpiresActive On ExpiresDefault "modification"
.