我注意到有很多配置不当的网站,它们似乎采用了各种方法来阻止图片的“热链接”,但在嵌入数据中却仍然返回了这些图片的链接,例如:
通过 http://debug.iframely.com/ 检查后,我真心认为这本身并不是 Discourse 的问题,但看起来确实不太美观。
一个想法是,在生成帖子时,onebox 的创建过程可以获取图片,然后要么存储缩略图以供后续使用,要么如果无法获取,则表现得像没有指定图片一样。
存储图片副本将相当稳健且具有前瞻性,我认为这应属于版权法中的“合理使用”范畴(原始网站不会因重复使用从元数据中获取的 130x90 缩略图而受损,尽管我不是法律专家)。
如果不行,我曾尝试编写一个组件来捕获图片的错误事件,然后添加一个类将其或其包装器设置为 display:none。但我尚未成功,因为我在 decorateCookedElement() 中陷入了困境……我不确定自己是否找对了地方。
那么,是否只有我频繁遇到 onebox 中图片损坏的问题?其他人有解决方法吗?
Falco
(Falco)
2
我们不是已经这样做了吗?再检查一下你的帖子!
显然不是在渲染时进行,因为你不希望将网络请求放在这条关键路径上。但我们会将其加入队列,并在后台下载单盒图片。
如果启用了“将远程图片下载到本地”(默认值为 true),我们会等待“编辑宽限期”(默认为 300 秒)后再进行下载。
4 个赞
太棒了!
我之前在查看“单个帖子设置”,所以没注意到“将远程图片下载到本地”这一选项,它之前是禁用的。
我已经启用该选项,并重新生成了部分帖子的 HTML。希望这能整理好一些问题。
感谢你的提示 
2 个赞
Falco
(Falco)
5
在更改默认设置时,务必谨慎并仔细考虑其后果。我们出厂预设了最优选项,偏离这些设置可能会带来意想不到的后果。
1 个赞
说得有道理。我通常都使用默认设置,但在这个情况下,该设置似乎是由前任管理员修改的——我不确定具体原因。
希望这个设置现在也能让 Instagram 单盒中的图片保持持久显示。
再次感谢,向 Discourse 致以满满的爱 
2 个赞
是的,现在 onebox 在无法 onebox 时提供了更好的反馈,它会尽力解释原因。
1 个赞