バックアップからの復元後、ブラウザがサイトロゴを表示しない

punBB から Discourse にフォーラムを移行し、ブランディングなども設定しました。Discourse の Docker コンテナを含む VM は、nginx リバースプロキシの背後にあります。2 日後、Discourse にアクセスできなくなり、初期セットアップ後に作成したバックアップからデータを復元してアプリを再構築しました。

再構築と復元は少なくとも 3 回行いましたが、復元後、どのブラウザでもサイトロゴが読み込まれなくなりました。古い画像に問題がないか確認するため、Upload.where("id > 0").destroy_all を実行して画像ディレクトリをクリーンにしました。

しかし、それでもどのブラウザもロゴ画像(デフォルトのものさえも)を読み込みません。ブラウザの開発者ツールを見ると、ロゴへのリクエストは行われていますが、何らかの理由でブラウザが失敗しています。ただし、画像のリンクを直接開くと、画像は表示されます。

この動作はここで確認できます:https://forum.epplehaus.de/login

Discourse の最新バージョン 2.6.0.beta1 を使用しており、バックアップも同じバージョンで作成されています。

画像が HTTP で読み込まれていますが、サイト全体は HTTPS を使用しています。デフォルトでは、ブラウザは HTTPS ページに安全でないオブジェクトを読み込みません。

リバースプロキシが SSL 暗号化を処理している場合でも、添付ファイルやアップロード URL が HTTP ではなく HTTPS で提供されるように、Discourse 内で force_https を有効にする必要があります。

これで実際に問題が解決しました。ありがとうございます!