У меня есть скрипт Python в Splunk, который генерирует отчет .docx.

Когда этот отчет будет создан, я получу ссылку на этот файл, который я использую на своей панели инструментов html / js, чтобы предоставить пользователю ссылку для загрузки. Файл находится внутри экземпляра Splunk, у Splunk есть собственный кеш, но он очищается с помощью версии _bump.

Проблема (вероятно) в том, что браузер кэширует файл, и если я создаю новый отчет с другим содержимым, я продолжаю загружать старый файл вместо нового.

Я могу загрузить новую версию файла, только если я Empty cache and hard reload захожу на веб-страницу.

Я могу найти обходной путь, создав файл с другим именем в питоне, но это как последнее возможное решение. Я бы хотел, чтобы был сгенерирован только 1 отчет.

Есть ли способ очистить этот кеш и выполнить жесткую перезагрузку с помощью javascript или как заставить браузер загружать новую версию файла?

0
Ondřej Ševčík 28 Окт 2019 в 17:21

1 ответ

Лучший ответ

Браузеры кешируют файлы на основе указанного URL. Чтобы управлять кешами через интерфейсный браузер, просто добавьте ?cachebust=TIMESTAMP к URL-адресу, где TIMESTAMP - это просто new Date().getTime(). Поскольку вы добавляете его в качестве параметра запроса, он по-прежнему будет запрашивать тот же ресурс из серверной части, поэтому вам не нужно делать что-либо необычное на стороне сервера.

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

http://www.example.com/someFile.txt?cacheBust=109230110238
1
Peter LaBanca 28 Окт 2019 в 17:32
Спасибо, это должно решить мою проблему. Я просто забыл об этом решении, в прошлом у меня была похожая проблема с файлами .js несколько раз.
 – 
Ondřej Ševčík
28 Окт 2019 в 17:35