example.comのリンクがあります。どこから来たのでしょうか?

こんにちは、

Discourse インスタンスを、マルチサイト構成から、バックアップのエクスポート/インポートを使用した単一コンテナのシングルホスト構成へ、あるホストから別のホストへ移行しました。しかし、一部のリンクが正しいホストの代わりに www.example.com を使用しています。

これを修正するにはどうすればよいでしょうか?

DISCOURSE_HOST をホスト名に設定しましたが、問題が解決したようではありません。www.example.com の出現箇所を検索するために実行できる SQL クエリはありますか?

Change the domain name or rename my Discourse? に記載されているように、リマップを行うのはどうでしょうか。

私の推測では、どこかの段階でそのホスト名が設定されてしまったのではないかと思われます。しかし、それがどのようにして起こったのかは推測しにくいです。

@hellekin さん、こんにちは

Rails コンソールから、以下のようにしてサイト設定全体で「example」という文字列を素早く検索できます。

SiteSetting.where('value LIKE ?', "%example%")

例えば、当社の Discourse インスタンスでは次のようになります。

[1] pry(main)> SiteSetting.where('value LIKE ?', "%unix\.com%").count
=> 10

REDIS を確認したい場合は、データコンテナが app にあると仮定して、以下を試してみてください(必要に応じて適宜変更してください)。

docker exec -it app redis-cli

その後、以下のようなコマンドを実行してみてください。

127.0.0.1:6379> KEYS *example*
(empty list or set)

別の例:

127.0.0.1:6379> KEYS *unix*
1) "default:_CACHE:onebox__https://www.unix.com/man-page/linux/1/df/"
2) "ANON_CACHE_text/html,application/xhtml+xml,application/signed-exchange;v=b3,application/xml;q=0.9,*/*;q=0.8_https_community.unix.com/t/passing-variables-to-awk/150198|m=true|c=true|b=true|t=|ca=|l=_count"
3) "default:_CACHE:onebox__https://www.unix.com/aix/56317-timestamp-sh_history-using-ksh-shell.html"

すべてのグローバル設定を素早く確認したい場合は、Rails コンソールから以下のコマンドを実行してください。すべてのグローバル設定が表示されます(もっと良い方法があるはずですが、これは素早く動作します)。

[1] pry(main)> GlobalSetting.as_json

参考になれば幸いです。

@pfaffman さんのリンクを追って、DISCOURSE_HOST ではなく DISCOURSE_HOSTNAME を使用していたことに気づきました。

@neounix さんの有用な調査ヒントは結果をもたらさなかったため、最初の問題が現在の状況につながったと考えています。コンテナを再構築して確認します…

コンテナの再構築が完了し、以前は壊れていた画像へのリンクが表示されるようになったため、解決したと思われます。二人ともありがとう!

@pfaffman 修正を確認するために、ActivityPub Support: Phase 1 RFC - #27 by hellekinHTML の再構築 をお願いできますか?

はい、コードを確認した今なら、その理由が完全に納得できます。Discourse の設定ファイルでは、デフォルトのホスト名が "www.example.com" に設定されているため、ビルドファイルにミスがあった場合(@hellekin が説明されたような)、デフォルト値が表示されることになります :slight_smile:

いつか誰かが、そのデフォルト設定を以下のように変更してくれるかもしれませんね:

hostname = "www.hostname-missing-check-yml-file.com"

:slight_smile: :slight_smile:

ここでは管理者権限がありません。あなたのサイトの埋め込みが他のサイトで機能するか確認したい場合は、try.discourse.org でテストできます。

hostname = "please.set.DISCOURSE_HOSTNAME.env.example" の方がより明示的で、RFC に準拠していると思います。

ありがとうございます。すでに他の場所でテスト済みですが、この投稿を更新したかっただけです :slight_smile:

ボタンが押されました。画像が表示されているようです!