Как отключить статический кэш в django?
В настоящее время я разрабатываю приложения на django в течение нескольких месяцев, я заметил, что как только вы заканчиваете разработку интерфейсов приложения и хотите интегрировать их в бэкенд, все работает правильно, но спустя время это превращается в беспорядок при изменении статических файлов, поскольку django кэширует эти файлы, возможно, для более эффективного рендеринга шаблонов, однако, когда я хочу внести изменения, я должен переименовать файл и заново вставить его в index.html, чтобы django обнаружил его "как новый файл". Как вы можете видеть, такая работа очень раздражает. Есть ли у кого-нибудь идеи, как решить эту проблему?
Решения зависят от используемых технологий веб-сервера. Если в качестве веб-сервера вы используете, например, nginx, вы можете уничтожить кэш для некоторых определенных файлов, например:
location ~* \.(css|js)$ {
expires -1;
}
Но я не рекомендую делать это таким образом. Это полностью отключит кэширование и заставит клиентов постоянно загружать активы, даже если они не изменились. Это не очень хорошая практика.
По этой причине я рекомендую следующий подход: просто добавьте параметр GET после активов, которые вы хотите принудительно загрузить:
<link href="style.css?v=1" rel="stylesheet" type="text/css">
Таким образом, вы можете контролировать, когда вы хотите, чтобы фронтенд снова загрузил активы (изменить значение параметра), и вы все еще можете извлечь выгоду из кэширования ваших статических активов.
<