DiscoTOCでTypeErrorが表示されています

以下のようなエラーが表示されます。どうすれば修正できますか?

ちなみに、トピックに目次を追加した後、ページを更新しないと目次のリンクが機能しないのですが、これは正常な動作でしょうか?

「いいね!」 1

@Yt.w さん、ご報告ありがとうございます。お伝えいただいた問題は再現できませんでした。この動作はまだ観察されていますか?もしそうであれば、再現するための手順について、もう少し詳しく教えていただけますでしょうか?

私の見るところでは、ページをリフレッシュしてHTMLを再構築することは、想定された動作です。これを回避することは可能かもしれませんが、コンポーネントの現在の動作方法を変更する必要があります。

「いいね!」 1

こんにちは、この動作は現在も観測されており、現在のインスタンスをインストールした直後に発生しました。変更は加えていません。

他のインスタンスではこの問題は発生していないため、非常に混乱しています。

UXの観点から、TOCをアクティブに保つためにページをリフレッシュしない方が良いと考えます。

「いいね!」 1

@Yt.w このエラーが発生したときにブラウザのコンソールを見せていただけますか?エラーを展開してください。


こんにちは、コンソールに表示されるのはこれです

ホスティングしている3つのサイトのうちの1つで全く同じエラーが発生しています。これは、そのサイトの設定のいずれかが原因で発生していることを示唆しています。まだど の設定が原因かは特定できていませんが、特定できたら投稿を更新します。最新のテスト合格リリースでもこの問題が発生していることを追記しておきます。

コンソールには以下のような表示が出ており、良くも悪くも、すべて見慣れたものです :slight_smile:

「いいね!」 1

ありがとうございます。正確な再現手順については、まだ調査中です。マルチサイトでホストされているサイトでは、この問題は発生させることができていません。

「いいね!」 1

これはレッドヘリング(ミスリード)の可能性もありますが、十分な時間をかけて調査できていません。しかし、コンポーネントを削除して再インストールすると、一貫して以下のエラーが発生します。

image

フィールド番号は、コンポーネントの再インストールごとに異なるコンポーネント番号としてインストールされるため、変化すると思われます。引き続き調査しますが、他のコンポーネントで同じことを行っても、このようなことは起こりません。

現在の疑いは、このサイトで以前に行った特定のS3の変更を元に戻したことが、失敗の一因であるということです。@Yt.w さん、あなたのインストールでも以前S3を使用されたことはありますか?

「いいね!」 2

わかりました。エラーを解消し、再現させることができました。

TL;DR

  • 以前正常に動作していたS3設定に戻し、DiscoTOCコンポーネントを削除して再インストールすると、コンポーネントのインストール時にエラーのない状態になります。
  • app.ymlのすべてのS3ディレクティブをコメントアウトしてS3を無効にすると、コンポーネントをインストールしたときにエラーが再度現れ、アップデート時にもエラーが戻ると推測されます。
  • DISCOURSE_USE_S3: falseを設定しても、DiscourseはS3パスの使用を止めません。これはバグか、この設定が期待通りの動作をしない可能性があります。

詳細な概要

最初に私が行ったのは、MinIOの設定を復活させ、app.ymlの設定オプションのコメントを解除し、アプリを再構築し、s3:upload_assetsタスクを実行したことです。サイトが復旧したら、コンポーネントセクションに移動しました。既にインストールされていたDiscoTOCコンポーネントにはエラーが表示されていましたが、それを削除して再インストールするとエラーは再現しませんでした。DiscoTOCコンポーネントのインストール中に_sprite.svg_が私のS3サーバーからリクエストされました。

問題の再現を試みる一環で、面白い問題に直面しました。すべてのS3ディレクティブを有効(コメントアウトしない)にした状態で、DISCOURSE_USE_S3: falseに設定すると、MinIOが稼働していないときにサイトのフロントエンドがロードされなくなるのです。

おそらく、DISCOURSE_USE_S3: FalseはすべてのS3アクセスを無効にするものではなく、その名前に基づいてそう推測していますが、実際にはそうではありません。MinIOサービスを再起動し、フロントエンドをリフレッシュするとすべて動作します。また、この状態でDiscoTOCコンポーネントをアンインストールし、再インストールしてもエラーは再現されません。少なくともこれはバグの可能性があります。

以下は、再現性のあるエラーにつながった3番目の状態です。

MinIOを稼働させずにサイトを動かすために、すべてのS3関係の設定をコメントアウトし、アプリを再構築しました。その後、MinIOを稼働させずにフロントエンドが問題なくロードされました。しかし、DiscoTOCコンポーネントをアンインストールして再インストールするとエラーが再び現れます。MinIOを起動しても同様です。おそらく、app.ymlにS3の設定がまったく存在しなかったため、裏でS3にアクセスしようとしてもデフォルト値を使っているだけだったからです。ただし、投稿の再ベーク後もいくつかの画像はS3から配信され続けているようです(例:1531a70abda0d81d1a4039b6f3fa38bea79ef0de_2_180x180.png/xl.meta)。

「いいね!」 2

はい、問題があったフォーラムはS3(B2)を使用していましたが、問題のなかったフォーラムはS3を使用していませんでした。

「いいね!」 1