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

アップロードされた画像の相対 URL を Discourse で生成するにはどうすればよいですか?

当サイトは HTTPS と TOR の .onion の両方でアクセス可能ですが、どちらの環境でも画像が表示されるようにする必要があります。

Discourse を設定して、upload:// の URL を <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 にアクセスできません。
  • 通常サイトは DDoS 保護の背後にあるため、TOR 経由でもアクセスできません。仮に動作したとしても、TOR 出口ノードに情報を漏らすことは望みません。

これにはいくつかの内部変更が必要になります。CDN を使用していないサイトのドメイン名を変更する際に、少し生活が楽になるため、ある程度共感できます。

CDN が設定されていない場合、相対 URL を生成する、といった仕組みにする必要があります。

設定が変更された場合のみ、この設定を行う必要があると推測されます。

例えば、

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

というコードがあるとします。CDN が設定されていない場合、Discourse.cdn_url_no_prefix は単に空文字列で問題ありません。

つまり、(近い) 将来にこれを実装する可能性があるということでしょうか?

一言付け加えて、@sam の意見に賛成ですが、ドメインの入れ替えはこれまでに何度かありましたので、相対 URL の使用は間違いなく必要です。

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

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

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

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

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

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