需要上传图像的相对URL

如何让 Discourse 为上传的图片生成相对 URL?

我有一个网站同时支持 HTTPS 和 TOR .onion 地址,我需要一种方法让图片在这两种环境下都能正常显示。

如何配置 Discourse,使 upload:// 链接在 <img> 标签中被转换为相对 URL?这个 URL 生成过程发生在哪个源文件中?

我认为相对图像 URL 并不是一种受支持的配置,而且这可能是一个非常困难的更改 cc @sam

澄清一下:

从 HTTPS 域名和 TOR 隐藏服务 .onion 上传都能正常工作,但为帖子生成的实际 HTML 使用了完整 URL,这带来了问题。

我猜测某处有类似这样的代码:

 '<img src="' + Discourse.base_url_no_prefix + '/uploads/....jpg' + '">' 

而我需要它生成:

 '<img src="' + '/uploads/....jpg' + '">' 

调整 absolute_without_cdn 是否过于底层,并影响太多内容?

URL 必须是相对路径,原因如下:

  • 普通浏览器无法访问 .onion URL。
  • 无法通过 TOR 访问正常站点,因为它位于 DDoS 防护之后。即使能访问,我也不希望向 TOR 出口节点泄露任何信息。

这需要一些内部调整。我对此持一定同情态度,因为对于未使用 CDN 的网站来说,更改域名会让操作变得稍微容易一些。

或许可以这样实现:如果未配置 CDN,则生成一个相对 URL。

我假设你只需要在配置更改时进行此设置?

想象一下:

'<img src="' + Discourse.cdn_url_no_prefix + '/uploads/....jpg' + '">' 

当没有配置 CDN 时,Discourse.cdn_url_no_prefix 可以简单地设置为空字符串。

这是否意味着您有可能在(近期)未来实现这一功能?

我补充一点并同意 @sam 的观点,我们之前已经在域名和相对 URL 方面遇到过一些变动,因此绝对需要支持相对 URL。

我支持使用相对内部链接。目前,我使用完整 URL 来引用同一站点上的其他主题。

事实上,我们的网站最近更换了域名(请注意,当前重定向已生效):

我们的新主机 Communiteq(原 DiscourseHosting)以某种方式 sed 了我们的数据库,以反映这一变更。

当前状态是否有技术原因?未来我们是否可以使用类似 %{THIS}/t/000 的方式?作为一名开发者,绝对路径通常让我感到不安。此外,我们在此次迁移过程中(或至少更严格地执行了)从 http: 切换到 https: 的问题也与此相关。这看起来与 @mreach 提到的用例非常相似。

一如既往,非常感谢 Discourse 团队提供如此出色的产品。R.

当域名变更时,对所有受影响的帖子执行一次针对性的搜索和替换通常不是什么大问题。