如何在GitHub上的README.rst中强制进行映像(缓存)更新

时间:2014-11-12 22:39:22

标签: github readme

在我的一个项目中,我使用外部图像链接通过GitHub页面显示屏幕截图,该页面自动解析README.rst

GitHub page of ROyWeb

我在过去几周内在我的网络服务器上多次更新了这个截图,我刚刚意识到它在GitHub页面上没有更新,因为......好吧我认为它从未更新;-) GitHub以某种方式下载了图像并从它的缓存服务器加载它。

在README.rst中,显然有正确的链接:

Actual link to the ROyWeb screenshot

加载原始文件时可以确认:

raw README.txt on GitHub

但是当我在GitHub页面上检查显示图像的URL时,我得到:

GitHub cached screenshot of ROyWeb

有谁知道如何强制“重新安排”?

4 个答案:

答案 0 :(得分:51)

curl -X PURGE {url of cached badge image}

答案 1 :(得分:3)

还有一个有用的技巧。无非就是在图片扩展末尾加一个问号。

![This is an automated blog post image using Azure Function](https://customurl.blob.core.windows.net/github/latestpost.png?)

看到最后的问号 (?)。您还可以在我的 GitHub profile 中查看现场示例。

您可以查看有关此 here 的更多信息。

答案 2 :(得分: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并让缓存过去过期,我发现GitHub的CDN会在每次刷新时自动更新图像。

答案 3 :(得分:2)

我看了shields.io做了什么。

设置此标题(Source):

Cache-Control: max-age=2592000