【问题标题】:How to force image (cache) update in README.rst on GitHub如何在 GitHub 上的 README.rst 中强制更新图像(缓存)
【发布时间】:2015-01-09 23:01:13
【问题描述】:

在我的一个项目中,我使用外部图片链接通过 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

有人知道如何强制“重新缓存”吗?

【问题讨论】:

  • 我也很想知道这个问题的答案。
  • 然后投票给问题@b85411; )

标签: github readme


【解决方案1】:

还有一个有用的技巧。只不过是在图片扩展名末尾加了一个问号而已。

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

请参阅末尾的问号 (?)。您还可以在我的GitHub profile 中查看现场示例。

你可以看到更多关于这个here

【讨论】:

  • 你太棒了!
  • 像魅力一样工作!
  • 基于@Sibeesh Venu
【解决方案2】:

我看看shields.io 做了什么。

它设置这个标题 (Source):

Cache-Control: max-age=2592000

【讨论】:

  • 我看到了这个想法here,但不知道原始 URL 使用什么语法。按照你的第二个链接向我展示了如何做到这一点。谢谢。
【解决方案3】:
curl -X PURGE {url of cached badge image}

【讨论】:

  • 这对我不起作用。还有另一种方法吗?我的自述文件是一堆丢失的图像(主要是 shields.io 徽章)。这是一个已知的错误,有修复的前景吗?
  • @MichaelAquilina 我不知道他是怎么找到它的,但 Github 提到了它here
  • 这确实有效!如果它不适合您,请在单击刷新的同时按 Ctrl 键,您可能会从自己的缓存中获取图像(我必须这样做)。
  • 确保使用 Ctrl-Shift-R 刷新以清除浏览器缓存。
  • 今天这个方法对我不起作用(经过几个月几乎每天使用)-它返回“访问该站点已被限制。”。我尝试添加 API 令牌 - 结果相同。图像最终确实刷新了,所以也许这不再需要?
【解决方案4】:

我相信我现在已经明白如何做到这一点了。例如,不要提供原始 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 会在每次刷新时自动更新图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2015-03-04
    • 2014-07-11
    • 2020-12-19
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多