Как отключить статический кэш в django?

В настоящее время я разрабатываю приложения на django в течение нескольких месяцев, я заметил, что как только вы заканчиваете разработку интерфейсов приложения и хотите интегрировать их в бэкенд, все работает правильно, но спустя время это превращается в беспорядок при изменении статических файлов, поскольку django кэширует эти файлы, возможно, для более эффективного рендеринга шаблонов, однако, когда я хочу внести изменения, я должен переименовать файл и заново вставить его в index.html, чтобы django обнаружил его "как новый файл". Как вы можете видеть, такая работа очень раздражает. Есть ли у кого-нибудь идеи, как решить эту проблему?

Решения зависят от используемых технологий веб-сервера. Если в качестве веб-сервера вы используете, например, nginx, вы можете уничтожить кэш для некоторых определенных файлов, например:

location ~* \.(css|js)$ {
    expires -1;
}

Но я не рекомендую делать это таким образом. Это полностью отключит кэширование и заставит клиентов постоянно загружать активы, даже если они не изменились. Это не очень хорошая практика.

По этой причине я рекомендую следующий подход: просто добавьте параметр GET после активов, которые вы хотите принудительно загрузить:

<link href="style.css?v=1" rel="stylesheet" type="text/css">

Таким образом, вы можете контролировать, когда вы хотите, чтобы фронтенд снова загрузил активы (изменить значение параметра), и вы все еще можете извлечь выгоду из кэширования ваших статических активов.

<
Вернуться на верх