Imgur 图片无法显示

我们遇到了一个让我抓狂的问题。

问题:托管在 Imgur 上的图片经常无法显示。

示例:

通过 CTRL-F5 刷新页面可以让图片显示出来,但由于我们在许多主题中都遇到了这个问题,这种变通方法实际上并不可接受。

首次发现于 2019 年 9 月初,涉及来自 dslreports.com 的图片,使用 FF 69.0(Windows 系统)。
目前该问题依然存在,使用 FF 76.0.1 和 Discourse 2.5.0.beta4。

另一位用户的观察

  • 在 macOS 10.12.6 上使用 FF 69.0 验证…
    • 正常页面加载时缺少图片,正如所报告的那样。
    • 使用 Cmd-Shift-R(按住 Shift 键刷新)后图片会出现。
    • 使用 Cmd-R(仅普通刷新)则图片再次消失。
  • Chrome 版本 77.0.3865.75:表现相同
    • Cmd-R:无图片
    • Cmd-Shift-R:有图片
  • Safari 版本 12.1.2 (12607.3.10) 始终能正常显示图片

示例主题

1 个赞

图片在这里能正常发布吗?请在此回复中尝试使用相同的图片链接。

2 个赞

好主意!

Imgur

图片链接:
Imgur

直接链接:

Markdown 链接:
Imgur

BBCode

带链接的 BBCode → 无法工作!

1 个赞

这就是我现在看到的(尚未按下 CTRL-F5):

按下 CTRL-F5 后 → 所有图片均可见。

1 个赞

我在 Firefox 和 Chrome 上都能正常使用,无论是否启用 uBlock Origin。

这会不会来自你浏览器中的个人设置(某些扩展程序对外域图片非常敏感)?

2 个赞

尝试使用一个您平时不常用的不同网页浏览器。这样可以排除本地浏览器自定义设置的影响。

如果这不起作用,请在手机上关闭 Wi-Fi 后尝试,这样可以排除本地网络的影响。

2 个赞

我将在周末从其他用户那里收集数据,并随后汇报。

2 个赞

抱歉,我花了点时间才回到这个话题。

今天的有趣观察:

测试主题:Broken imgur images (for testing only) - Site Feedback and Other Questions - OpenWrt Forum

Firefox

  • 全新打开的 Firefox,未登录,访问测试主题:第一个帖子中的所有图片均正常显示
  • 全新打开的 Firefox,已登录,访问测试主题:第一个帖子中的最后一张图片无法显示

Chrome

  • 全新打开的 Chrome,未登录,访问测试主题:第一个帖子中的最后一张图片无法显示
  • 全新打开的 Chrome,已登录,访问测试主题:第一个帖子中的最后一张图片无法显示

此现象可复现。

编辑:上述结果基于有线网络访问。为了排除连接问题,我通过手机热点进行了交叉验证,结果相同。

如您所见,对于 Firefox,是否登录会有影响;而 Chrome 则不受影响,在任何情况下都不显示最后一张图片。

1 个赞

根本原因

链接的 BBCode → 无法工作!
[url=https://imgur.com/6UadCq3]![](upload://oAe4ec2Wl59ohJsE3L6nlRdabPS.jpeg)[/url]

链接的 BBCode → 可以工作!
[url=https://imgur.com/6UadCq3][img]https://i.imgur.com/6UadCq3.jpg[/img][/url]

imgur 在图片链接中省略字母 ‘s’ 是否有任何原因?

对于无法看到此问题的人:

1 个赞

你从哪里获取那个不带 HTTPS 的 BBCode?

不管怎样,这里有几个建议:

  • 启用“将远程图片下载到本地”选项,并从“禁用图片下载域名”设置中移除 imgur,这样可以确保所有图片都托管在本地,从而避免此类问题再次发生。

  • 不知道这个论坛是由谁托管的,但它显然没有遵循我们的 Discourse 官方标准安装 指南。因此,它没有启用 HTTP/2,导致所有人的访问速度都变慢了。

3 个赞

来自 Imgur 网站。

@thess 你能就 Rafael 提到的另外两点发表一下意见吗?

1 个赞

哦,原来这是 Imgur 在查看你自己的图片并使用其“链接格式”时生成的 BBCode。

好吧,这是 Imgur 控制的内容,我们无能为力。此外,我们已经有针对 HTTP 内容的变通方案,即下载并在本地提供媒体。我们别无他法。

2 个赞

除非绝对必要,我宁愿不将图片托管在本地。

该网站由 DigitalOcean 托管。我是在 2016 年基于当时可用的 Debian 8 完成的安装。而且……据我所知,HTTP/2 一直已启用。

1 个赞

这其实并不必要。我相信 99% 的用户在大多数情况下只需将图片复制并粘贴到编辑器中即可。按 ++ 选择区域,然后按 + 粘贴到编辑器中。

此外,直接从 Imgur 复制图片或复制其 URL 也能完美工作。这份报告仅仅是一个极端的边缘情况。

你还可以使用 替换所有帖子中的字符串 来修正所有旧的 http imgur 链接。

Discourse 安装在 Docker 容器中,我们会提供 nginx 的更新,因此你无需在主机操作系统上提供支持。除非你进行了自定义设置并手动配置了反向代理,否则只要 Discourse 保持最新,你无需额外操作即可直接启用 HTTP/2。

2 个赞

据我了解,受影响的不仅仅是 Imgur。

同样受影响的还有(参见 Broken imgur images (for testing only) - #4 by tmomas - Site Feedback and Other Questions - OpenWrt Forum 以查看截图):

  • dropbox(https 链接,例如 https://www.dropbox.com/sh/ew0gap0crn30wyk/AACTBNd_oQF4pMzviYqDDtlYa/owrt1907-r11104-e752fc1ff9-20200605?dl=0

    作为 Discourse 论坛中的普通链接:Dropbox

    作为 Onebox 显示

如果您看不到问题,这里有一张截图:



“链接未找到”与我按 CTRL-F5 时在 OpenWrt 论坛中看到的情况相反(此时图片链接确实能正常工作,而非“未找到”)

修复 Imgur 的问题似乎相对简单,尽管需要付出一定努力,而且由于新的无效链接会不断出现,这种努力需要定期进行。

@Falco 既然 Dropbox 链接在 Discourse 论坛中似乎也无法工作:您是否按照上述建议将图片托管在本地?

1 个赞

再举一个与单框功能不兼容的非 Imgur 网站示例:

https://www.kuketz-blog.de/openwrt-update-benachrichtigung-fuer-packages/

1 个赞

是的,我们会将图片下载到本地,这是 Discourse 的默认行为。

发布第三方链接最终会导致图片失效,因此 Discourse 从早期版本起就内置了此功能。当然,这存在权衡:你需要为图片提供存储空间,无论是本地存储还是使用 对象存储 服务。

2 个赞

抱歉如此执着,但我有些困惑,觉得我可能没有正确理解这个问题。

令我困惑的是:

在创建此帖子并添加以下链接时:

https://www.kuketz-blog.de/openwrt-update-benachrichtigung-fuer-packages/

我在预览区域看到一张损坏的图片:


— 开始截图 —


— 结束截图 —


然而,在撰写此帖子时,在我 之前的帖子 中,同一链接显示的图片却是正确的:


— 开始截图 —


— 结束截图 —


我不明白为什么在 Discourse 论坛中会出现这个问题,尽管正如你所说,图片是存储在本地的。

1 个赞

这意味着你安装了损坏的浏览器扩展。你能移除所有扩展并再试一次吗?

2 个赞