У меня есть скрипт Python в Splunk, который генерирует отчет .docx.
Когда этот отчет будет создан, я получу ссылку на этот файл, который я использую на своей панели инструментов html / js, чтобы предоставить пользователю ссылку для загрузки. Файл находится внутри экземпляра Splunk, у Splunk есть собственный кеш, но он очищается с помощью версии _bump.
Проблема (вероятно) в том, что браузер кэширует файл, и если я создаю новый отчет с другим содержимым, я продолжаю загружать старый файл вместо нового.
Я могу загрузить новую версию файла, только если я Empty cache and hard reload
захожу на веб-страницу.
Я могу найти обходной путь, создав файл с другим именем в питоне, но это как последнее возможное решение. Я бы хотел, чтобы был сгенерирован только 1 отчет.
Есть ли способ очистить этот кеш и выполнить жесткую перезагрузку с помощью javascript или как заставить браузер загружать новую версию файла?
1 ответ
Браузеры кешируют файлы на основе указанного URL. Чтобы управлять кешами через интерфейсный браузер, просто добавьте ?cachebust=TIMESTAMP
к URL-адресу, где TIMESTAMP - это просто new Date().getTime()
. Поскольку вы добавляете его в качестве параметра запроса, он по-прежнему будет запрашивать тот же ресурс из серверной части, поэтому вам не нужно делать что-либо необычное на стороне сервера.
Если вы хотите, чтобы он был версионирован, чтобы у вас был больший контроль над тем, когда кеш закрывается, вы можете использовать число, которое увеличивается только тогда, когда вы хотите очистить кеш. Все, что имеет значение, - это изменение URL.
http://www.example.com/someFile.txt?cacheBust=109230110238
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.