#javascript #python #caching #flask
#javascript #python #кэширование #flask
Вопрос:
У меня есть следующий код на моем сервере Flask:
res = Response(resp, mimetype='text/plain')
res.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
res.headers["Pragma"] = "no-cache"
res.headers["Expires"] = "0"
return res
На стороне клиента у меня есть некоторый код javascript (в папке static/JS/ ), который я постоянно редактирую, исправляя ошибки и так далее. Однако изменения, которые я вношу в код javascript (например, добавление предупреждения или инструкции отладки), не выполняются при обновлении страницы в обычном окне Chrome (даже когда я отключаю браузер и перезапускаю его).). Это означает, что оно продолжает запускать более старую (кэшированную копию). Обновление работает правильно, когда я использую окно инкогнито. Есть ли способ, чтобы даже обычное окно браузера всегда могло получать последний код? Я обеспокоен тем, что в производственной среде браузер будет использовать кэшированные копии и вызывать проблему.
Комментарии:
1. Ctrl Shift R это для Chrome. Вам просто нужно очистить кеш в браузере. Найдите его.
2. Я не могу ожидать, что конечный пользователь очистит кеш при изменении любого из моих JS-кодов.
Ответ №1:
Один из способов убедиться, что браузер не кэширует файл, — это изменить URL-адрес при изменении файла. Это можно сделать без изменения имени файла, добавив запрос:
<script src="myscript.js?version=7">
Или, еще лучше:
<script src="myscript.js?timestamp=2837482.2456">
Вы можете создать функцию, которая генерирует URL-адрес с фактической меткой времени файла. Таким образом, браузер будет кэшировать его до тех пор, пока он не изменится.
Если вам интересно… запрос будет проигнорирован. Это не влияет на статические файлы.