在我的一个项目中,我使用外部图像链接通过GitHub页面显示屏幕截图,该页面自动解析README.rst
我在过去几周内在我的网络服务器上多次更新了这个截图,我刚刚意识到它在GitHub页面上没有更新,因为......好吧我认为它从未更新;-) GitHub以某种方式下载了图像并从它的缓存服务器加载它。
在README.rst中,显然有正确的链接:
Actual link to the ROyWeb screenshot
加载原始文件时可以确认:
但是当我在GitHub页面上检查显示图像的URL时,我得到:
GitHub cached screenshot of ROyWeb
有谁知道如何强制“重新安排”?
答案 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)