Я помітив, що деякі веб-переглядачі (зокрема, Firefox та Opera) дуже ретельно використовують кешовані копії файлів .css та .js , навіть між сеансами браузера. Це призводить до проблеми під час оновлення одного з цих файлів, але браузер користувача продовжує використовувати кешовану копію.
Питання: який найелегантніший спосіб змусити браузер користувача перезавантажити файл, коли він змінився?
В ідеалі рішення не змушує браузер перезавантажувати файл під час кожного відвідування сторінки. Я опублікую своє власне рішення як відповідь, але мені цікаво, чи є хтось кращого рішення, і я дозволю вашим голосам вирішити.
Оновлення:
Після дозволу обговорити тут деякий час, я вважав , що пропозиція Джона Мілікіна та da5id є корисною. Виявляється, для цього є термін: авто-версія .
Нижче я опублікував нову відповідь, яка поєднує моє оригінальне рішення та пропозицію Джона.
Іншою ідеєю, яку запропонував SCdF, було б додавання до файлу помилкового рядка запиту. ( Пі-пір подано деякий код Python для автоматичного використання часової позначки як помилкового рядка запиту .) Однак існує певна дискусія щодо того, чи браузер кешуватиме файл чи рядок запиту. (Пам'ятайте, що ми хочемо, щоб браузер кешував файл і використовував його при майбутніх візитах. Ми хочемо, щоб він знову отримав файл, коли він змінився.)
Оскільки незрозуміло, що відбувається з помилковим рядком запиту, я не приймаю цієї відповіді.
iframe.contentWindow.location.reload(true)
. Дивіться метод (4) stackoverflow.com/a/22429796/999120 - це стосується зображень, але те саме стосується.
ExpiresActive On ExpiresDefault "modification"
.