Подтвердить что ты не робот

Как принудительно обновлять изображение (кеш) в README.rst на GitHub

В одном из моих проектов я использую ссылку внешнего изображения для отображения скриншота через страницу GitHub, которая автоматически анализирует README.rst

Страница GitHub ROyWeb

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

В README.rst, очевидно, есть правильная ссылка:

Фактическая ссылка на скриншот ROyWeb

Что вы можете подтвердить при загрузке необработанного файла:

raw README.txt на GitHub

Но когда я проверяю URL-адрес отображаемого изображения на странице GitHub, я получаю:

GitHub кэшированный скриншот ROyWeb

Кто-нибудь знает, как заставить "recache"?

4b9b3361

Ответ 1

curl -X PURGE {url of cached badge image}

Ответ 2

Я считаю, что понял, как это сделать сейчас. Вместо того, чтобы обслуживать необработанный файл 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 автоматически обновляет изображения при каждом обновлении.

Ответ 3

Я посмотрел, что делает shields.io.

Он устанавливает этот заголовок (Источник):

Cache-Control: max-age=2592000