您好,
我是 Discourse 的新手,希望这个问题不是重复的或分类错误的。我正在使用 RSS 轮询插件来拉取 RSS 文章并创建讨论帖子。我发现,图片在最初正确显示后,随后会失效,并被替换为类似下面的代码片段:

这似乎是 Discourse 在尝试缓存 RSS 源中先前热链接的远程图片时发生的问题。我推测在下载和存储该图片的过程中出现了问题,但不知道如何调试。
以下是帖子版本历史中“之前/之后”的示例:
有人能给我指个方向吗?
simon
2
欢迎加入 Discourse 社区!这个问题之前出现过几次,但确实是一个合理的问题。你可以在这里找到关于该问题的详细信息:https://meta.discourse.org/t/fix-broken-images-for-posts-created-by-the-wp-discourse-and-rss-plugins/160773。关于问题成因的说明,请查看我在该主题下的第一条回复。
如果可能,处理该问题的最佳方法是将图片下载来源的域名添加到你的 Discourse“禁用的图片下载域名”站点设置中。这将阻止 Discourse 尝试下载这些图片,因为正是下载远程图片的过程导致了图片损坏。
要修复已有帖子中图片损坏的问题,请编辑帖子,在生成的图片 Markdown 标签上方添加一个空行。例如,如果你看到如下格式的标记:
<p></p>
请编辑帖子将其更改为:
<p>

</p>
1 个赞
谢谢,Simon。这很棒。
Discourse 无法将这些图片下载到本地吗?从 RSS 源进行热链接作为解决方案非常不稳定。
编辑:我还发现,如果我编辑帖子以修复损坏的图片,几分钟后它又会恢复原状!我已将我能看到的所有图片域名都添加到例外列表中,但毫无效果。
simon
4
Discourse 可以下载图片,问题在于当 Discourse 下载远程图片时,它会为图片生成一个 Markdown 标签。如果 Markdown 上传标签被 HTML 标签包裹,就会导致图片链接失效。除了我链接的那个主题外,这里还有一个关于该问题的错误报告:https://meta.discourse.org/t/markdown-rendering-issue-with-image-surrounded-with-html/152801。
是的,确实很难提前知道 RSS 源中的图片将来自哪些域名。
你能再仔细检查一下,确保正确的域名已添加到你的“禁用图片下载域名”(disabled image download domains)站点设置中吗?我本以为这种方法会奏效,但也可能是 Discourse 一旦下载了图片,即使后来将该图片的域名添加到了“禁用图片下载域名”设置中,它仍会继续使用已下载的图片。如果是这种情况,你可以尝试删除该主题,以便 Discourse 下次轮询 RSS 源时重新创建它。如果无法解决,请告诉我。
谢谢,Simon。
我不确定自己哪里做错了,但即使删除了话题,它们返回时仍然出现同样的问题。一个示例图片 URL 是 https://waspsholdingstore.blob.core.windows.net/media-cached-prd/b/5/f/a/2/6/b5fa26b1309701c3411b30433b113d189569b98a.jpg,因此我已将 waspsholdingstore.blob.core.windows.net 添加到“禁用图片下载域名”设置中。我还添加了 wasps.co.uk,这是原始 RSS 源中使用的域名(看起来会 301 重定向到这个 Windows 存储桶)。
是否有更彻底的删除话题的方法,我需要尝试一下,以确保这不是缓存导致的问题?
1 个赞