منذ الأسبوع الماضي، توقفت جميع الإضافات، سواء الأساسية أو المثبتة، عن العمل حتى عند تمكينها على المنتدى الخاص بنا. في البداية، اعتقدت أن الأمر يتعلق بالخطأ المذكور سابقًا https://meta.discourse.org/t/fix-compile-missing-rollup-plugin-bundles-on-demand-in-development/398864/8، لكننا قمنا بتشغيل عدة تحديثات منذ ذلك الحين ولم يحل أي منها المشكلة. حاولت تمكين إضافة غير مستخدمة سابقًا، وهي “ملاحظات المستخدمين” المثبتة مسبقًا، لكن لا توجد خيارات لإضافة ملاحظات لأي مستخدم. حتى مدير Docker توقف، مما يعني أن جميع التحديثات يجب تشغيلها على مستوى الخادم، مما يسمح لشخص واحد فقط بتطبيقها بدلاً من فريق الإدارة.
لقد حاولت البحث عن حل لهذه المشكلة، لكن كل ما وجدته يتعلق بتعطيل الإضافات تلقائيًا أو ما شابه ذلك، وليس محددًا مثل حالتنا.
هل يمكن لأي شخص أن ينصحنا بأي حلول محتملة أو مسارات يجب أن نتبعها؟ نحن نفضل تجنب التراجع عن التحديث، لكن يبدو حتى الآن أن هذا قد يكون الخيار الأخير.
لقد قمت بتفعيل إضافة تجاهل CORS الخاصة بي، وتم تحميل السكريبتات بنجاح، لكنني لا أرى أي تغييرات مرئية من الإضافات. أنصحك بتجربة ذلك، وإذا نجح الأمر، فيجب عليك تحديد ما يسبب الخطأ في شبكة تسليم المحتوى (CDN) الخاصة بك.
شكرًا جزيلاً لك على تخصيص الوقت للنظر في هذا الأمر نيابةً عنا. سنقوم بتشغيل بعض الاختبارات خلال عطلة نهاية الأسبوع وسنقوم بالتحديث بمجرد أن نتمكن من ذلك.
شكرًا لك يا جاي، لقد كان لدينا “باني” وقد حل الإصلاح الذي ذكرته جميع المشكلات الآن! شكرًا لك وللجميع على المساعدة والدعم في هذا الأمر، عاد منتدانا إلى وضعه الطبيعي. أو ما يمكن اعتباره طبيعيًا
في نظام الإضافات الجديد، نستخدم script type="module"، والذي يتطلب تعيين رؤوس CORS الصحيحة. أما نمط script type="text/javascript" القديم فلا يتطلب تلك الرؤوس.
لقد قمنا بنقل أنظمة مختلفة تدريجيًا إلى type="module" على مدار السنوات القليلة الماضية. كانت السمات تستخدمه بالفعل، وكذلك كان highlightjs (وهو ما ذُكر في الموضوع الآخر). كما أن تحميل الخطوط من شبكة CDN يتطلب أيضًا توافقًا مع CORS.
لذلك، ربما كانت هناك بعض الأمور الأخرى معطلة بشكل خفي حتى قبل التغييرات الأخيرة في نظام الإضافات. الآن بعد أن قمت بإعداد تكوين CORS، يجب أن يعمل كل شيء بشكل صحيح مرة أخرى
تنبيه بسيط للجميع: إذا كنت تستخدم Azure Classic CDN، فقد بدأت هذه المشكلة في الظهور. أنا أحاول تجربة حل من جانب شبكة CDN، ولكن قد أحتاج إلى الانتقال إلى Front Door الفعلي بدلاً من Classic CDN.
@pfaffman@TomoftheFog@tanya_byrne@denvergeeks، هل يمكنكم تأكيد كيفية تكوين أصولكم؟ هل لديكم فقط شبكة توصيل محتوى (CDN) وخادم التطبيق؟ أم أنكم تخزنون الأصول أيضًا على S3 أو على تخزين متوافق مع S3؟
إذا كنتم تستخدمون S3 أو تخزينًا متوافقًا مع S3، فللأسف فإن الطريقة الموثوقة الوحيدة هي إضافة بعض التكوينات الخاصة بشبكة توصيل المحتوى (CDN). لقد افترضت أن هذا الموضوع يتعلق بأصول S3، لكنني الآن لست متأكدًا؟
بالنسبة للأشخاص الذين يستخدمون شبكة توصيل محتوى (CDN) بسيطة مقابل خادم التطبيق، لا ينبغي أن يكون هناك أي عمل تكوين إضافي مطلوب. يجب أن تعمل الأمور “بشكل تلقائي”، تمامًا مثل حزم theme-javascripts وhightlightjs. لكن يبدو أننا كنا نفتقر بالفعل إلى الرأس (header) في تكوين NGINX الافتراضي لدينا. نعتذر عن ذلك!
هذا يجب أن يعيد الأمور للعمل مرة أخرى:
بمجرد دمج هذا التعديل، ستكون هناك حاجة لتشغيل أمر ./launcher rebuild app ليصبح ساري المفعول. لا يتم تطبيق تغييرات تكوين NGINX أثناء تحديثات واجهة المستخدم.
نعتذر عن هذا الاضطراب! كان ينبغي علينا إجراء اختبارات أكثر شمولاً مع تكوينات مختلفة لشبكات توصيل المحتوى (CDN). يرجى إخبارنا إذا كنت لا تزال تواجه أي مشاكل بعد إعادة البناء.
جميع المواقع التي أعرفها والتي تظهر فيها المشكلة مضافة على S3. كانت بعض شبكات تسليم المحتوى (CDNs) تحتوي بالفعل على JavaScript في القائمة، بينما لم يكن بعضها الآخر. لا أعرف السبب في ذلك؛ ربما تغيرت الإعدادات الافتراضية على مر السنين؟
واجهتُ صعوبة في جعل إعدادات CORS في Cloudflare R2 تعمل مع نطاق مخصص لهذا الغرض. انتهى بي الأمر بحل المشكلة بالقوة من خلال استخدام قاعدة تحويل الرؤوس لإدراج الرأس الصحيح دائمًا لنطاق شبكة توصيل المحتوى (CDN) الخاص بي. فقط في حال كان هذا مفيدًا لشخص آخر.
لقد اكتشفنا أيضًا مشكلة أخرى منذ ظهور هذه المشكلة: لا يستطيع بعض المستخدمين رؤية صور الرموز التعبيرية عند استخدام زر تنسيق النص المُعد مسبقًا في Markdown. يحاول النظام تحميل highlight-js ويظهر خطأ يشير إلى فشل CORS: