unteem
(Timothée Gosselin)
2022 年 1 月 21 日午前 10:02
1
オブジェクトストアを設定すると、トピック/投稿のプレビューが機能しません。
Discourse はオブジェクトストアで設定されています。
ドキュメントに従って Docker にインストールしました。
Discourse バージョン: 2.8.0.beta11
S3 設定の環境変数はこちらです。
DISCOURSE_CDN_URL: https://discourse.liiib.re
DISCOURSE_USE_S3: true
DISCOURSE_S3_REGION: default
DISCOURSE_S3_ENDPOINT: https://hot-objects.liiib.re
DISCOURSE_S3_ACCESS_KEY_ID: ACCESS_KEY_ID
DISCOURSE_S3_SECRET_ACCESS_KEY: SUPER_SECRET_KEY
DISCOURSE_S3_CDN_URL: https://forum-beta-liiib-re.hot-objects.liiib.re
DISCOURSE_S3_BUCKET: forum-beta-liiib-re
DISCOURSE_S3_INSTALL_CORS_RULE: false
ブラウザインスペクターで確認すると、markdown-it-bundle の URL は https:https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js を指しています。
DISCOURSE_S3_CDN_URL には既に https: が含まれているため、プレフィックスを付けるべきではありません。
コンソールには次のエラーが表示されます。
Loading failed for the <script> with source “https://discourse.liiib.re/https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js”.
ブラウザが https:https://... URL をこの URL にリダイレクトしているようです。
この URL がどこで設定されているのか、見つけようとしましたが、見つかりませんでした。
もし、どなたか正しい方向性を示していただければ幸いです
ご協力ありがとうございます。
「いいね!」 2
Benjamin_D
(Benjamin Decotte)
2022 年 1 月 21 日午前 10:14
2
unteem
(Timothée Gosselin)
2022 年 1 月 21 日午前 10:45
3
それも私の推測でした。言及するのを忘れました。
完全な開発環境がないため、すべてを徹底的にテストすることはできませんが、そこから来ているようには見えません。
私が見た限りでは、script_asset_path('markdown-it-bundle') は正しい URL を返しています。そして、これは問題なさそうなこのメタ HTML タグを構築するために使用されていると思います。
<meta id="data-discourse-setup" data-cdn="https://discourse.liiib.re" data-base-url="https://discourse.liiib.re" data-base-uri="" data-environment="production" data-letter-avatar-version="5_c12935382690395be92856801563c2b7" data-markdown-it-url="https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js" data-service-worker-url="service-worker.js" data-default-locale="en" data-asset-version="be5bda1657984e9e27d7d3c27ab24add" data-disable-custom-css="false" data-highlight-js-path="/highlight-js/discourse.liiib.re/084d101d62e4ceb91462fa1464b341511141973f.js" data-svg-sprite-path="/svg-sprite/discourse.liiib.re/svg-1-c105fc3106297bc864bbadbd418cf380c71e3a4b.js" data-enable-js-error-reporting="true" data-color-scheme-is-dark="false" data-user-color-scheme-id="4" data-user-dark-scheme-id="1" data-s3-cdn="https://forum-beta-liiib-re.hot-objects.liiib.re" data-s3-base-url="//forum-beta-liiib-re.hot-objects.liiib.re">
https: プレフィックスで間違った URL を設定しているのは JavaScript のようです。どこから来ているのかは見つけられませんでした。
エディタを開いたときにのみ、<script src="https:https://forum-beta-liiib-re.hot-objects.liiib.re/assets/markdown-it-bundle-9d939740bdeca330e5984bed41d12eab63736c1f720ab68e0c2a2d672c01adc2.br.js"></script> が表示されます。
「いいね!」 2
Falco
(Falco)
2022 年 1 月 21 日午後 5:32
4
S3 CDN URL が S3 エンドポイントのサブドメインである場合、機能しないと思います。両方で同じレベルの異なるサブドメインを使用してみてください。
「いいね!」 2
unteem
(Timothée Gosselin)
2022 年 1 月 28 日午前 11:36
5
承知しました。おっしゃる通りでした。
DISCOURSE_S3_CDN_URL をバケットのサブパス https://hot-objects.liiib.re/forum-beta-liiib-re として設定したところ、動作するようになりました。
S3 CDN を S3 エンドポイントのサブドメインとして許可することは妥当だと思いますか?
私のケースでは、他のセルフホスト環境と同様に、外部 CDN (minio の上に nginx を配置したもの CDN とみなすことができます) を使用していないため、別のドメインに設定する必要はありません。
Discourse がアップロードを管理するために必要だと考え、サブドメインバケットを設定しました。
いずれにせよ、これで問題は解決し、動作しています。助けてくれてありがとう!
「いいね!」 1