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

17

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

страница GitHub ROyWeb

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

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

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

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

необработанный README.txt на GitHub

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

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

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

    
задан tamasgal 12.11.2014 в 23:39
источник
  • Мне также было бы интересно узнать ответ на этот вопрос. –  b85411 09.01.2015 в 07:41
  • Затем проголосуйте за вопрос @ b85411; ) –  tamasgal 09.01.2015 в 09:51

3 ответа

37
curl -X PURGE {url of cached badge image}
    
ответ дан Alex.Designworks 03.05.2016 в 11:41
источник
  • Это сработало отлично –  mauron85 13.06.2016 в 18:42
  • Это не работает для меня. Есть ли другой подход? Мой readme - это беспорядок недостающих изображений (в основном значки shields.io). Это известная ошибка с любой перспективой исправить? –  orome 19.01.2017 в 16:25
  • Работает для меня, а также хороший ответ –  Eric Nord 26.01.2017 в 02:07
  • Не делает для меня ничего. –  TheChymera 06.07.2017 в 01:15
  • Это потрясающе! Из любопытства, где вы нашли эту информацию. Я не думаю, что PURGE является стандартным методом http? –  Michael Aquilina 11.05.2018 в 11:08
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 обновляет изображения автоматически при каждом обновлении.

    
ответ дан b85411 12.01.2015 в 01:59
источник
2

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

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

Cache-Control: max-age=2592000
    
ответ дан User 31.03.2017 в 11:44
источник
  • Я видел эту идею здесь, но понятия не имел, какой синтаксис использовать с необработанным URL-адресом. После второй ссылки мне показалось, как это сделать. Благодарю. –  Mars 01.08.2017 в 06:13