Управление версиями статических файлов django

Я работаю над универсальным решением проблемы со статическими файлами и обновлениями в Это.

Пример: допустим, был сайт с файлом /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-cache, потому что после обновления файла нам придется очистить ...

какие-нибудь мысли?

31
задан MackM 17 October 2019 в 14:57
поделиться