У меня есть сценарий Python в Splunk, который генерирует отчет .docx.
Когда этот отчет будет создан, я получу ссылку на этот файл, который я использую на своей панели инструментов html / js, чтобы предоставить пользователю ссылку для скачивания. Файл находится внутри экземпляра Splunk, Splunk имеет свой собственный кеш, но этот очищается с версией _bump.
Проблема (вероятно) заключается в том, что браузер кэширует файл, и если я создаю новый отчет с другим содержимым, я продолжаю загружать старый файл вместо нового.
Я могу загрузить новую версию файла только в том случае, если я очистил кэш и перезагрузил
веб-страницу.
Я могу сделать обходной путь, создав файл с другим именем в Python, но это как последнее возможное решение. Я хотел бы, чтобы был создан только один отчет.
Есть ли способ, как очистить этот кэш и выполнить перезагрузку с помощью JavaScript или заставить браузер загрузить новую версию файла?
1 ответ
Браузеры кэшируют файлы на основе указанного URL. Чтобы управлять кэшем через интерфейсный браузер, просто добавьте ? Cachebust = TIMESTAMP
к URL-адресу, где TIMESTAMP - просто new Date (). GetTime ()
. Так как вы добавляете его в качестве параметра запроса, он все равно будет запрашивать тот же ресурс из серверной части, поэтому вам не нужно делать что-то необычное на стороне сервера.
Если вы хотите, чтобы он был версионным, чтобы иметь больший контроль над тем, когда кэш-память разгружается, вы можете использовать число, которое увеличивается только тогда, когда вы хотите разрушить кеш. Все, что имеет значение, это изменения URL.
http://www.example.com/someFile.txt?cacheBust=109230110238
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.