Hallo zusammen,
kürzlich habe ich eine Discourse-Themenkomponente (GitHub - Beholder-Vision/discourse-insert-model-3d: A Discourse theme component for adding 3D models to topics) geschrieben, die es Discourse-Administratoren ermöglicht, 3D-Modelle auf ihren Foren hochzuladen und anzuzeigen.
Zuerst schien alles gut zu funktionieren, bis ich die Meldung erhielt, dass einige hochgeladene Modelle verschwunden waren. Als ich dann mein eigenes Forum überprüfte, sah ich, dass die hochgeladenen Assets (3D-Modelle und Poster-Bilder) ebenfalls gelöscht worden waren Insert Model 3D - #2 by patrickemin.
Als ich die Dokumentation las (Understanding Uploads, Images, and Attachments), ging ich davon aus, dass die hochgeladenen Assets in Ordnung sein würden, da sie von einem Beitrag referenziert wurden. Nach einiger Recherche fand ich diesen Code, discourse/app/models/post.rb at 03bb43f7468d3aa6e73bba0805193ae50c7ec2d5 · discourse/discourse · GitHub, der anscheinend die Aufgabe hat, Uploads auf dem Server zu identifizieren. Soweit ich das beurteilen kann, wird eine hochgeladene Datei nur dann als von einem Beitrag referenziert gezählt, wenn sie von einem von einer begrenzten Anzahl von HTML-Tags referenziert wird. Ein verlinkter Upload wird also erkannt, wenn er vom href-Attribut eines -Elements referenziert wird, aber nicht, wenn er vom src-Attribut eines -Elements referenziert wird (was meine neue Themenkomponente hinzufügt).
Kann jemand, der mit diesem Code vertraut ist, bestätigen, ob mein Verständnis hier richtig ist oder nicht? Wenn das richtig ist, dann denke ich, dass Leute, die Themenkomponenten erstellen, Assets als Uploads markieren können, indem sie einen versteckten -Link generieren, der auf das Asset verweist. Es wäre jedoch sehr hilfreich, wenn die Dokumentation (Understanding Uploads, Images, and Attachments) aktualisiert werden könnte, um auf diese Fallstricke hinzuweisen.
Vielen Dank
Alan