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

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

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

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

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

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

0
Ondřej Ševčík

1 ответ

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

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

http://www.example.com/someFile.txt?cacheBust=109230110238
58592644