Я работаю над универсальным решением проблемы со статическими файлами и обновлениями в нем.
Пример: допустим, что был сайт с файлом /static/styles.css
- и сайт использовался в течение длительного времени - поэтому многие посетители кэшировали этот файл в браузере
Сейчас мы делаем изменения в этом CSS файле и обновляем на сервере, но у некоторых пользователей все еще есть старая версия (несмотря на дату модификации, возвращаемую сервером)
Очевидное решение заключается в добавлении какой-либо версии в файл /static/styles.css?v=1.1
, но в этом случае разработчик должен отслеживать изменения в этом файле и вручную увеличивать версию
Второе решение - подсчитать хэш md5 файла и добавить его в URL /static/styels.css/?v={mdp5hashvalue}
, который выглядит намного лучше, но md5 должен каким-то образом рассчитываться автоматически.
Возможно, я так понимаю - создайте шаблонный тег, подобный этому
{% static_file "style.css" %}
который будет рендерить
<link src="/static/style.css?v=md5hash">
НО, я не хочу, чтобы этот тег вычислял md5 при каждой загрузке страницы, и я не хочу хранить хеш в django-кеше, потому что тогда нам придется очищать после обновления файла...
есть идеи?