DiscoTOC يظهر لي خطأ نوع TypeError

يظهر لي الخطأ أدناه. كيف يمكنني إصلاحه؟

بالمناسبة، بعد إضافة جدول المحتويات (TOC) في موضوع ما، أحتاج إلى تحديث الصفحة، وإلا فإن رابط جدول المحتويات لا يعمل. هل هذا سلوك طبيعي؟

إعجاب واحد (1)

شكرًا لك @Yt.w على التقرير. لم أتمكن من إعادة إنتاج المشكلة التي ذكرتها. هل ما زلت تلاحظ هذا السلوك؟ إذا كان الأمر كذلك، فهل يمكنك تقديم المزيد من التفاصيل حول خطوات إعادة إنتاجه؟

حسب ما أراه، فإن تحديث الصفحة لإعادة بناء HTML هو سلوك متوقع. في حين أنه قد يكون من الممكن تجنب ذلك، إلا أنه سيتطلب تغييرات في كيفية عمل المكون حاليًا.

إعجاب واحد (1)

مرحباً، ما زلت ألاحظ هذا السلوك، وقد حدث بالفعل فور تثبيت نسختي الحالية. لم أقم بأي تغييرات.

نسختي الأخرى لا تعاني من هذه المشكلة، لذا فإن الأمر محير للغاية بالنسبة لي.

من منظور تجربة المستخدم، أعتقد أنه من الأفضل تجنب تحديث الصفحة للحفاظ على نشاط جدول المحتويات.

إعجاب واحد (1)

@Yt.w هل يمكنك إظهار وحدة تحكم المتصفح لديك عندما تواجه هذا الخطأ من فضلك؟ قم بتوسيع الخطأ أيضًا.


مرحباً، هذا ما يظهر في وحدة التحكم الخاصة بي

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

هذا ما هو موجود في وحدة التحكم الخاصة بي وكلها أشياء اعتدت رؤيتها، للأفضل أو للأسوأ :slight_smile:

إعجاب واحد (1)

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

إعجاب واحد (1)

قد يكون هذا مضللاً أو لا، لم يكن لدي وقت كافٍ للبحث ولكن عندما أقوم بإزالة المكون وإعادة تثبيته، أحصل باستمرار على الخطأ التالي:

image

يتغير الرقم في الحقل، وأفترض أن ذلك لأنه يتم تثبيته كرقم مكون مختلف في كل مرة يتم فيها إعادة تثبيت المكون. سأستمر في البحث ولكن هذا لا يحدث عندما أفعل الشيء نفسه مع أي مكونات أخرى..

شكوك الحالية هي أن الفشل يرجع جزئيًا إلى أنني تراجعت عن بعض تغييرات S3 التي أجريتها خصيصًا على هذا الموقع في وقت ما. @Yt.w هل هناك فرصة أنك استخدمت S3 أيضًا في وقت ما في تثبيتك؟

إعجابَين (2)

حسنًا، تمكنت من إخفاء الخطأ وإعادة إنتاجه.

ملخص سريع

  • العودة إلى إعداد S3 كان يعمل سابقًا وحذف وتثبيت مكون DiscoTOC يؤدي إلى تثبيت خالٍ من الأخطاء للمكون.
  • تعطيل S3 عن طريق التعليق على جميع توجيهات S3 في ملف app.yml يؤدي إلى عودة ظهور الخطأ عند تثبيت المكون، ومن المفترض أن يعود الخطأ عند التحديث أيضًا.
  • تعيين DISCOURSE_USE_S3: false لا يمنع Discourse من استخدام مسارات S3، هذا يبدو وكأنه خطأ برمجي أو أن هذا الإعداد لا يفعل ما أظنه يفعله.

نظرة تفصيلية

في البداية، قمت بإعادة إعداد Minio الخاص بي، وألغيت التعليق عن خيارات التكوين في app.yml، وأعدت بناء التطبيق، وتأكدت من تشغيل مهمة s3:upload_assets. بمجرد عودة الموقع للعمل، توجهت إلى قسم المكونات. لا زال مكون DiscoTOC المثبت يظهر الخطأ، ومع ذلك، عند حذفه وإعادة تثبيته، لم يعد الخطأ يظهر. أثناء تثبيت مكون DiscoTOC، تم طلب sprite.svg من خادم S3 الخاص بي.

كجزء من محاولة إعادة إنتاج المشكلة، واجهت مشكلة مثيرة للاهتمام. يبدو أنه عندما أترك جميع توجيهات S3 في ملف app.yml نشطة، أي غير معلقة، ولكن أعيّن DISCOURSE_USE_S3: false، فإن واجهة الموقع الأمامية لا تُحمّل إذا لم يكن Minio قيد التشغيل.

ربما أن DISCOURSE_USE_S3: false لا يهدف إلى تعطيل كل وصول S3، أظن ذلك بناءً على الاسم لكن من الواضح أنه لا يفعل. بمجرد أن أعيد تشغيل خدمة Minio وأنفّذ تحديث للواجهة الأمامية، يعمل كل شيء بشكل جيد. كما أنني قادر على إلغاء تثبيت وإعادة تثبيت مكون DiscoTOC دون إعادة إنتاج الخطأ في الحالة الحالية. يبدو أن هناك على الأقل خطأ برمجي واحد.

إليك الحالة الثالثة التي أدت إلى تكرار الخطأ:

لكي يعمل موقعي بدون تشغيل Minio مرة أخرى، علّقت جميع الإدخالات التي تتعلق بـ S3 في التكوين. ثم أعادت بناء التطبيق، والآن بدون تشغيل Minio، يتم تحميل الواجهة دون مشكلة. ومع ذلك، إذا قمت بإلغاء التثبيت وإعادة التثبيت، يظهر الخطأ مرة أخرى. حاولت أيضًا تشغيل Minio في هذه الحالة، لكن الخطأ عاد عند إعادة التثبيت، على الأرجح لأن لا توجد توجيهات S3 محددة في app.yml، لذا حتى لو حاول الوصول إلى S3 في الخلفية، فسوف يستخدم القيم الافتراضية بدلاً من إعدادات صحيحة. ويبدو أن بعض الصور لا تزال تحاول أن تُقدم من S3 حتى بعد إعادة تجميل المنشورات (e.g. 1531a70abda0d81d1a4039b6f3fa38bea79ef0de_2_180x180.png/xl.meta).

إعجابَين (2)

نعم، المنتدى الذي واجه مشكلات كان يستخدم S3 (B2)، في حين أن المنتدى الذي لم يواجه مشاكل لم يكن يستخدم S3.

إعجاب واحد (1)