2016-10-08 3 views
0

я следующий код в моем Колба сервере:Колба приложение не отражает новый JS изменения

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 

На стороне клиента У меня есть яваскрипт код (в папке статический/JS /), что я постоянно редактиРование исправление ошибок и т. д. Однако изменения, которые я вношу в код javascript (пример добавления инструкции оповещения или отладки), не выполняются, когда я обновляю страницу в обычном хромированном окне (даже когда я убиваю браузер и перезапускаю его). Это означает, что он продолжает запускать более старую (кешированную копию). Обновление работает правильно, когда я использую окно инкогнито. Есть ли способ, чтобы даже обычное окно браузера всегда извлекало последний код? Я обеспокоен тем, что в рабочей среде браузер будет использовать кешированные копии и вызвать проблему.

+0

Ctrl + Shift + R для Chrome. Вам просто нужно очистить кеш в браузере. Найдите его. –

+0

Я не могу ожидать, что конечный пользователь очистит кеш при изменении любого из моих JS-кодов. – user3079275

+0

Я не могу воспроизвести вашу проблему. Когда я изменяю статический файл, это изменение отражается, когда страница обновляется. – davidism

ответ

0

Один трюк за то, что браузер не кэширует файл, заключается в изменении URL-адреса при изменении файла. Это может быть сделано без изменения файла, путем добавления запроса:

<script src="myscript.js?version=7"> 

Или еще лучше:

<script src="myscript.js?timestamp=2837482.2456"> 

Вы можете сделать функцию, которая генерирует URL с фактической временной меткой файла. Таким образом, браузер будет кэшировать его до тех пор, пока он не изменится.

Если вам интересно ... запрос будет проигнорирован. Это не влияет на статические файлы.

Смежные вопросы