Статические файлы Django не обновляются
В моем проекте Django приложение my_app имеет шаблон, который ссылается на статический файл javascript:
<script src="{% static 'my_app/my_script.js' %}"></script>
После того, как я установил my_script.js в my_app/templates/my_app, казалось, все работает. В какой-то момент я переписал my_script.js другим сценарием, так что теперь my_script.js имеет другое содержимое.
Однако, когда я загружаю my_app с моего браузера, он загружает старый my_script.js, хотя он больше не существует. Как я могу решить это? Благодарю.
3 ответа
Я часто использую ?v=00001
или любое другое число, чтобы принудительно очистить кеш в браузере. Так что в вашем случае это может быть:
<script src="{% static 'my_app/my_script.js?v=00001' %}"></script>
Или же:
<script src="{% static 'my_app/my_script.js' %}?v=00001"></script>
В следующий раз, когда вы измените скрипт, увеличьте число до 00002. Конечно, есть много способов сделать это, но я все еще предпочитаю этот метод.
Вы можете добавить очистку кеша? Get= параметр. Мне нравится определять тег шаблона {% statichash %}, который читает файл и добавляет хэш содержимого файла в качестве параметра get. Это похоже на использование измененного времени файла вместо хеша, но та же идея:
Я исправил это, добавив код для обновления браузера. Таким образом, он всегда будет получать последние обновленные статические файлы вместо чтения из своего кэша.
Есть 3 способа сделать это.
- Обновите страницу вручную
Используя ОС Windows с браузерами Google Chrome или IE9, нажмите (CTRL + F5)
Обновляйте страницу через определенные промежутки времени (в этом примере браузер обновляется каждые 3 секунды)
<head>
<meta http-equiv="refresh" content="3" >
</head>
Обновить страницу, когда пользователь нажимает кнопку
<form>
<INPUT TYPE="button" onClick="history.go(0)" VALUE="Refresh">
</form>