皆さん、こんにちは。
最近、Discourseの管理者がフォーラムに3Dモデルのアップロードと表示を有効にできるようにするDiscourseテーマコンポーネント(https://github.com/Beholder-Vision/discourse-insert-model-3d)を作成しました。
最初はすべて順調に進んでいるように見えましたが、アップロードされたモデルの一部が消えたという報告を受け、自分のフォーラムを確認したところ、アップロードされたアセット(3Dモデルとポスター画像)も削除されていることがわかりました(Insert Model 3D - #2 by patrickemin
ドキュメント(https://meta.discourse.org/t/understanding-uploads-images-and-attachments/275735)を読んだとき、アセットは投稿によって参照されているため問題ないだろうと想定していましたが、調査したところ、サーバー上のアップロードを識別する作業を行っていると思われるコード(https://github.com/discourse/discourse/blob/03bb43f7468d3aa6e73bba0805193ae50c7ec2d5/app/models/post.rb#L1137)を見つけました。私の理解では、アップロードされたファイルは、限られた数のHTMLタグのいずれかによって参照されている場合にのみ、投稿によって参照されているとカウントされるようです。したがって、リンクされたアップロードは、`要素のhref属性によって参照されている場合は認識されますが、私の新しいテーマコンポーネントが追加する要素のsrc`属性によって参照されている場合は認識されません。
このコードに詳しい方、私の理解が正しいかどうか確認していただけますでしょうか?もし正しい場合、テーマコンポーネントを作成する人々は、アセットを参照する非表示の<a>リンクを生成することでアセットをアップロードとしてマークできると思いますが、ドキュメント(https://meta.discourse.org/t/understanding-uploads-images-and-attachments/275735)にこの注意点が強調されるように更新されると非常に役立つでしょう。
よろしくお願いいたします。
Alan