Ответ 1
curl -X PURGE {url of cached badge image}
В одном из моих проектов я использую ссылку внешнего изображения для отображения скриншота через страницу GitHub, которая автоматически анализирует README.rst
Я обновил этот снимок экрана на своем веб-сервере несколько раз за последние недели, и я просто понял, что он не обновляется на странице GitHub, так как... ну я думаю, что он никогда не обновлялся;-) GitHub каким-то образом загрузил изображение и загрузил его с кеш-серверов.
В README.rst, очевидно, есть правильная ссылка:
Фактическая ссылка на скриншот ROyWeb
Что вы можете подтвердить при загрузке необработанного файла:
Но когда я проверяю URL-адрес отображаемого изображения на странице GitHub, я получаю:
GitHub кэшированный скриншот ROyWeb
Кто-нибудь знает, как заставить "recache"?
curl -X PURGE {url of cached badge image}
Я считаю, что понял, как это сделать сейчас. Вместо того, чтобы обслуживать необработанный файл png, например, выполните изображение через php файл (много примеров на SO).
Как только вы показываете изображение с PHP, добавьте следующие заголовки:
header('Cache-Control: no-cache');
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() - 36000));
Установив no-cache
с истечением срока действия кеша в прошлом, я обнаружил, что CDN GitHub автоматически обновляет изображения при каждом обновлении.
Я посмотрел, что делает shields.io.
Он устанавливает этот заголовок (Источник):
Cache-Control: max-age=2592000