アップロードされた画像の相対URLが必要

How can I get Discourse to generate relative URLs for uploaded images?

I have a site that is available over HTTPS and a TOR .onion and I need a way to get images working for both.

How can I configure Discourse so that upload:// URLs are converted to relative URLs in the <img> tag? Where (which source file) does this URL generation take place?

I don’t think relative image URLs is a supported configuration, and that might be a very difficult change cc @sam

「いいね!」 1

Just to clarify:

Uploading works correctly both from the HTTPS domain and the TOR hidden service .onion but the actual HTML generated for a post uses a full URL which is a problem.

I’m assuming somewhere there is some code that does something like

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

and I need it to generate

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

Would playing with absolute_without_cdn be too low-level and affect too many things?

The URL needs to be relative because:

  • A normal browser cannot access the .onion URL.
  • Cannot access the normal site over TOR because it is behind DDoS protection. And even if it worked, I don’t want to leak details to TOR exit nodes.
「いいね!」 1

This would require some internal changes, I am somewhat sympathetic cause it makes life a bit easier when changing domain names for sites that do not use A CDN.

Would have to be something like, IF no CDN configured then cook a relative url.

「いいね!」 3

I assume you only need to set this up when the configuration is changed?

Imagine having

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

When there is no CDN configured then Discourse.cdn_url_no_prefix can simply be a empty string.

Does that mean that there is a chance you can implement this in the (near) future?

Just to add a voice and to agree with @sam, we’ve already had some switcheroos with our domains and relative URLs is most certainly needed.

相対的な内部リンクに賛成の声を上げさせてください。現在、同じサイト内の他のトピックを参照する際に、完全な URL を使用しています。

実際、当サイトは最近ドメインを変更しました(現在リダイレクトが有効になっています)。

新しいホストである Communiteq(旧 DiscourseHosting)は、この変更を反映させるために、なんとデータベースを sed で処理してくれました。

現在の状態には技術的な理由があるのでしょうか?将来的には %{THIS}/t/000 のような形式を使用することは可能でしょうか?開発者として、絶対パスにはいつも不安を感じます。また、上記の移行の一環として http: から https: への切り替え(少なくともより厳格な強制)を行った点も同様のケースと言えます。これは @mreach さんのケースと非常に似ています。

いつも素晴らしい製品を提供してくださる Discourse チームに心から感謝しています。R.

「いいね!」 1

ドメインが変更された際、影響を受けるすべての投稿を対象にターゲット検索・置換を実行することは、通常、大きな問題にはなりません。

「いいね!」 1