tmomas
(tmomas)
1
我们遇到了一个让我抓狂的问题。
问题:托管在 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 个赞
我在 Firefox 和 Chrome 上都能正常使用,无论是否启用 uBlock Origin。
这会不会来自你浏览器中的个人设置(某些扩展程序对外域图片非常敏感)?
2 个赞
尝试使用一个您平时不常用的不同网页浏览器。这样可以排除本地浏览器自定义设置的影响。
如果这不起作用,请在手机上关闭 Wi-Fi 后尝试,这样可以排除本地网络的影响。
2 个赞
tmomas
(tmomas)
8
抱歉,我花了点时间才回到这个话题。
今天的有趣观察:
测试主题:Broken imgur images (for testing only) - Site Feedback and Other Questions - OpenWrt Forum
Firefox
- 全新打开的 Firefox,未登录,访问测试主题:第一个帖子中的所有图片均正常显示
- 全新打开的 Firefox,已登录,访问测试主题:第一个帖子中的最后一张图片无法显示
Chrome
- 全新打开的 Chrome,未登录,访问测试主题:第一个帖子中的最后一张图片无法显示
- 全新打开的 Chrome,已登录,访问测试主题:第一个帖子中的最后一张图片无法显示
此现象可复现。
编辑:上述结果基于有线网络访问。为了排除连接问题,我通过手机热点进行了交叉验证,结果相同。
如您所见,对于 Firefox,是否登录会有影响;而 Chrome 则不受影响,在任何情况下都不显示最后一张图片。
1 个赞
tmomas
(tmomas)
9
根本原因
链接的 BBCode → 无法工作!
[url=https://imgur.com/6UadCq3][/url]

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

imgur 在图片链接中省略字母 ‘s’ 是否有任何原因?
对于无法看到此问题的人:
1 个赞
Falco
(Falco)
10
你从哪里获取那个不带 HTTPS 的 BBCode?
不管怎样,这里有几个建议:
3 个赞
tmomas
(tmomas)
11
来自 Imgur 网站。
@thess 你能就 Rafael 提到的另外两点发表一下意见吗?
1 个赞
Falco
(Falco)
12
哦,原来这是 Imgur 在查看你自己的图片并使用其“链接格式”时生成的 BBCode。
好吧,这是 Imgur 控制的内容,我们无能为力。此外,我们已经有针对 HTTP 内容的变通方案,即下载并在本地提供媒体。我们别无他法。
2 个赞
thess
(Ted Hess)
13
除非绝对必要,我宁愿不将图片托管在本地。
该网站由 DigitalOcean 托管。我是在 2016 年基于当时可用的 Debian 8 完成的安装。而且……据我所知,HTTP/2 一直已启用。
1 个赞
Falco
(Falco)
14
这其实并不必要。我相信 99% 的用户在大多数情况下只需将图片复制并粘贴到编辑器中即可。按 ++ 选择区域,然后按 + 粘贴到编辑器中。
此外,直接从 Imgur 复制图片或复制其 URL 也能完美工作。这份报告仅仅是一个极端的边缘情况。
你还可以使用 替换所有帖子中的字符串 来修正所有旧的 http imgur 链接。
Discourse 安装在 Docker 容器中,我们会提供 nginx 的更新,因此你无需在主机操作系统上提供支持。除非你进行了自定义设置并手动配置了反向代理,否则只要 Discourse 保持最新,你无需额外操作即可直接启用 HTTP/2。
2 个赞
tmomas
(tmomas)
15
据我了解,受影响的不仅仅是 Imgur。
同样受影响的还有(参见 Broken imgur images (for testing only) - #4 by tmomas - Site Feedback and Other Questions - OpenWrt Forum 以查看截图):
如果您看不到问题,这里有一张截图:
“链接未找到”与我按 CTRL-F5 时在 OpenWrt 论坛中看到的情况相反(此时图片链接确实能正常工作,而非“未找到”)
修复 Imgur 的问题似乎相对简单,尽管需要付出一定努力,而且由于新的无效链接会不断出现,这种努力需要定期进行。
@Falco 既然 Dropbox 链接在 Discourse 论坛中似乎也无法工作:您是否按照上述建议将图片托管在本地?
1 个赞
tmomas
(tmomas)
16
再举一个与单框功能不兼容的非 Imgur 网站示例:
https://www.kuketz-blog.de/openwrt-update-benachrichtigung-fuer-packages/
1 个赞
Falco
(Falco)
17
是的,我们会将图片下载到本地,这是 Discourse 的默认行为。
发布第三方链接最终会导致图片失效,因此 Discourse 从早期版本起就内置了此功能。当然,这存在权衡:你需要为图片提供存储空间,无论是本地存储还是使用 对象存储 服务。
2 个赞
tmomas
(tmomas)
18
抱歉如此执着,但我有些困惑,觉得我可能没有正确理解这个问题。
令我困惑的是:
在创建此帖子并添加以下链接时:
https://www.kuketz-blog.de/openwrt-update-benachrichtigung-fuer-packages/
我在预览区域看到一张损坏的图片:
— 开始截图 —
— 结束截图 —
然而,在撰写此帖子时,在我 之前的帖子 中,同一链接显示的图片却是正确的:
— 开始截图 —
— 结束截图 —
我不明白为什么在 Discourse 论坛中会出现这个问题,尽管正如你所说,图片是存储在本地的。
1 个赞
Falco
(Falco)
19
这意味着你安装了损坏的浏览器扩展。你能移除所有扩展并再试一次吗?
2 个赞