منشور التضمين: تعذر قراءة محددات CSS من موقع React

لدي علامات CSS في المحتوى الخاص بي وحددت محددات CSS في إعدادات مسؤول التضمين ولكن الزاحف لا يلتقطها. أعتقد أن هذا بسبب أن موقعي مبني باستخدام React وأن محددات CSS غير متاحة. كيف يمكنني استخدام هذه الميزة مع موقع React؟

قد يكون هذا هو الحال، رغم أنني أتوقع أن الطلب الذي يرسله Discourse إلى الموقع يعيد HTML. شيء آخر يستحق البحث هو أن Discourse يخزن محتوى الموقع الخارجي في ذاكرة التخزين المؤقت لمدة 10 دقائق. هذا يعني أنه إذا كنت تقوم بتعديل إعداد الموقع «محددات التضمين المسموح بها»، فستحتاج إلى الانتظار حتى 10 دقائق لرؤية نتائج القيمة الجديدة للإعداد.

إذا لم يكن موقع Discourse الخاص بك في مرحلة الإنتاج بعد ولديك وصول إلى وحدة تحكم Rails الخاصة بموقع Discourse، فيمكنك مسح ذاكرة التخزين المؤقت من وحدة التحكم باستخدام الأمر Rails.cache.clear.

توجد تفاصيل إضافية حول هذا الإعداد هنا: Configuring allowed embed selectors.

تعديل: أعتقد أن التضمين يعمل كما هو متوقع. الأمر مجرد أنه صعب التكوين لبعض المواقع. سأقوم بنقل هذا الموضوع إلى Support.

لقد أنشأت موضوعًا بعنوان Contribute > Feature قبل بضعة أشهر مقترحًا أن يجد Discourse طريقة أفضل لتحليل المنشورات المضمنة: Topic embedding needs some love. سأخصص بعض الوقت لذلك قريبًا إذا لم يقم أحد بذلك قبلي.

يقدم Discourse وجهة نظر مختلفة للزواحف. لرؤيتها، ستحتاج إلى زيارة الموقع مع تعطيل جافاسكريبت.

لا أتوقع أن يتم الزحف إلى المشاركات المضمنة لأنها غير موجودة في الموقع الذي تم تضمينها فيه.

مرحباً، أنا أشير إلى كيفية قيام Discourse بالزحف إلى موقع React الخاص بي باستخدام ميزة المشاركات المضمنة. أواجه صعوبة في إخباره بالمحتوى الذي يجب تضمينه في مشاركة Discourse بسبب الطريقة التي يرى بها صفحة React الخاصة بي.

إذا كان ذلك يساعد، فإن الكود المستخدم لسحب المشاركة الخارجية موجود هنا: discourse/app/models/topic_embed.rb at main · discourse/discourse · GitHub

إذا كان لديك حق الوصول إلى وحدة تحكم Rails الخاصة بموقعك، يمكنك اختبارها للحصول على فكرة عما يحدث. على سبيل المثال:

TopicEmbed.find_remote("https://blog.discourse.org/2023/04/introducing-discourse-ai/")

حيث واجهت مشاكل مع طريقة parse_html التي يتم استدعاؤها في نهاية طريقة find_remote. تواجه Ruby Readability صعوبة مع بعض HTML/CSS.

من الممكن أيضًا ألا يتم إرجاع HTML من موقع React الخاص بك. يمكنك تأكيد ذلك عن طريق تشغيل الكود الموجود في طريقة find_remote في خطوات من وحدة التحكم.

هذا ممتاز، شكراً لك!