مرحباً بالجميع،
مؤخرًا كتبت مكون سمة لـ Discourse (GitHub - Beholder-Vision/discourse-insert-model-3d: A Discourse theme component for adding 3D models to topics) يسمح لمسؤولي Discourse بتمكين تحميل وعرض نماذج ثلاثية الأبعاد في منتدياتهم.
بدا الأمر يعمل بشكل جيد في البداية حتى تلقيت تقريرًا بأن بعض النماذج التي تم تحميلها قد اختفت، ثم عند فحص منتداي الخاص، رأيت أن الأصول التي تم تحميلها (النماذج ثلاثية الأبعاد وصور الملصقات) قد تم مسحها أيضًا Insert Model 3D - #2 by patrickemin.
عند قراءة المستندات (Understanding Uploads, Images, and Attachments)، افترضت أن الأصول التي تم تحميلها ستكون بخير لأنها مشار إليها بواسطة منشور، ولكن بعد إجراء بعض البحث، وجدت هذا الكود، discourse/app/models/post.rb at 03bb43f7468d3aa6e73bba0805193ae50c7ec2d5 · discourse/discourse · GitHub الذي يبدو أنه يقوم بعملية تحديد التحميلات على الخادم. من ما يمكنني فهمه، يتم احتساب الملف الذي تم تحميله على أنه مشار إليه بواسطة منشور فقط إذا تمت الإشارة إليه بواسطة أحد عدد محدود من علامات HTML. لذلك، سيتم التعرف على التحميل المرتبط إذا تمت الإشارة إليه بواسطة السمة href لعنصر <a> ولكن ليس إذا تمت الإشارة إليه بواسطة السمة src لعنصر <model-viewer> (وهو ما يضيفه مكون السمة الجديد الخاص بي).
هل يمكن لشخص على دراية بهذا الكود أن يؤكد ما إذا كان فهمي هنا صحيحًا أم لا؟ إذا كان الأمر كذلك، أعتقد أن الأشخاص الذين ينشئون مكونات السمات يمكنهم تمييز الأصول كتحميلات عن طريق إنشاء رابط <a> مخفي يشير إلى الأصل، ولكن سيكون من المفيد جدًا تحديث المستندات (Understanding Uploads, Images, and Attachments) لتسليط الضوء على هذه المشكلة.
شكراً جزيلاً
آلان