تحديث من 2.4.0.beta9 إلى 2.4.0.beta10 يُنتج صفحة بدون محتوى - Cloudflare Rocket Loader

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

جربت التبديل إلى مجلد /var/discourse وتشغيل الأمر ./launcher rebuild app، وقد تم تنفيذه كما هو متوقع، لكن موقع المنتدى لا يزال يظهر نفس السلوك (صورة علوية وخلفية بدون محتوى).

هل يمكنكم المساعدة؟

إذا قمت بعرض المصدر، يبدو أن بعض المحتوى موجود بالفعل… لكنه غير مرئي. لم يتم إجراء أي تغييرات عليه بين الإصدار 2.4.0.beta9 والإصدار الحالي.

هل تواجه أي أخطاء في وحدة تحكم المتصفح؟ (انقر بزر الماوس الأيمن، ثم اختر فحص العنصر، وانتقل إلى تبويب وحدة التحكم)

نعم:

تم رفض تحميل السكربت ‘https://ajax.cloudflare.com/cdn-cgi/scripts/7089c43e/cloudflare-static/rocket-loader.min.js’ لأنه ينتهك توجيه سياسة أمان المحتوى التالي: “script-src ‘report-sample’ https://forums.stillwellaudio.com/logs/ https://forums.stillwellaudio.com/sidekiq/ https://forums.stillwellaudio.com/mini-profiler-resources/ https://forums.stillwellaudio.com/assets/ https://forums.stillwellaudio.com/brotli_asset/ https://forums.stillwellaudio.com/extra-locales/ https://forums.stillwellaudio.com/highlight-js/ https://forums.stillwellaudio.com/javascripts/ https://forums.stillwellaudio.com/plugins/ https://forums.stillwellaudio.com/theme-javascripts/ https://forums.stillwellaudio.com/svg-sprite/ https://www.google-analytics.com/analytics.js”. لاحظ أنه لم يتم تحديد ‘script-src-elem’ بشكل صريح، لذا يتم استخدام ‘script-src’ كبديل.

20تم تحميل المورد مسبقًا باستخدام link preload ولكن لم يتم استخدامه خلال بضع ثوانٍ من حدث تحميل النافذة. يرجى التأكد من أن له قيمة مناسبة لـ as وأنها تم تحميلها مسبقًا عمدًا.

تحسينات جافا سكريبت من كلاودفلر تسبب بانتظام مشاكل في مواقع ديسكوس. يجب عليك تسجيل الدخول إلى حسابك في كلاودفلر وتغيير نطاق المنتدى من “سحابة برتقالية” إلى “سحابة رمادية”.

هذا إصلاح سهل، شكرًا لك. إنه محبط نوعًا ما لأنه يتجاوز جميع حماية Cloudflare من هجمات حجب الخدمة (DDOS) وإخفاء عناوين IP، لكن تغييره جعله يعمل بالفعل. سأتواصل مع دعم Cloudflare للإبلاغ عن المشكلة.

لا أعتقد أن هناك الكثير الذي يمكن لـ Cloudflare فعله تلقائيًا. توجد إرشادات للسماح لـ Rocket Loader بالعمل ضمن سياسة أمان المحتوى (CSP). ومع ذلك، فإن جافا سكريبت في Discourse محسّن بالفعل بشكل كبير، لذا فإن Rocket Loader ليس ضروريًا.

إذا دخلت إلى إعدادات Cloudflare، فيجب أن يكون من الممكن تعطيل Rocket Loader بشكل محدد. بعد ذلك، يمكنك إعادة تفعيل الوكيل وسيختفي أخطاء CSP.

بالنسبة لمعظم المستخدمين، من الأسهل تعطيل Cloudflare بالكامل، ولكن إذا كنت بحاجة حقًا إلى حماية ضد هجمات DDoS، فيمكنك إعداده باستخدام الإرشادات هنا: Full site CDN acceleration for Discourse

تم التأكيد: تعطيل Rocket Loader وإعادة تمكين Proxy يعملان بشكل جيد أيضًا. هذا حل وسط جيد، شكرًا لك!

من المهم التوضيح أنه لا يجب عليك إيقاف السحابة البرتقالية؛ يمكنك أيضًا إبقاؤها مفعلة مع تطبيق قاعدة صفحة لتعطيل “الأداء” للموقع بأكمله.

حماية DDoS الخاصة بهم غير مرتبطة بميزات التحسين.

ومع ذلك، فإن إبقاء السحابة مفعلة يبطئ كل طلب؛ لذا، ما لم تكن بحاجة فعلية إلى حماية DDoS أو ترغب في استخدام شبكة توصيل المحتوى (CDN) الخاصة بهم، فمن الأفضل تركها معطلة.

أستخدم التوجيه الذكي من Argo وميزات الأداء الأخرى في Cloudflare، وكقاعدة عامة، فإنها تحسن الأداء بشكل ملحوظ… بشكل رئيسي للموقع الرئيسي في ذلك النطاق وليس المنتدى، لكن الموقع الرئيسي هو ما يسمح للناس بشراء منتجاتي… السرعة أفضل. على أي حال، إيقاف ذلك التحسين المحدد (Rocket Loader) يسمح لـ Discourse بالعمل خلف الوكيل، وهذا حل وسط مقبول. شكرًا!

مشكلة مماثلة بعد الترقية إلى الإصدار التجريبي 2.4.0 بيتا 10

لدي إصدار https://www وإصدار https:// (بدون www).

إصدار https://www يعمل بشكل ممتاز.

أما إصدار https:// فيصبح فارغًا في متصفحي Chrome و Safari مع ظهور العديد من الأخطاء في وحدة التحكم (Console).

تم رفض تحميل السكربت ‘’ لأنه ينتهك توجيه سياسة أمان المحتوى التالي: “script-src ‘report-sample’ ”. لاحظ أنه لم يتم تعيين ‘script-src-elem’ بشكل صريح، لذا تم استخدام ‘script-src’ كبديل.

تم رفض تحميل السكربت ‘https://dastereo.ru/assets/locales/ru-2fae24b4e1db72deb2076bee15794ed9e0a6814a5bf52d778e29c106812aaa6c.js’ لأنه ينتهك توجيه سياسة أمان المحتوى التالي: “script-src ‘report-sample’ https://www.dastereo.ru/logs/ https://www.dastereo.ru/sidekiq/ https://www.dastereo.ru/mini-profiler-resources/ https://www.dastereo.ru/assets/ https://www.dastereo.ru/brotli_asset/ https://www.dastereo.ru/extra-locales/ https://www.dastereo.ru/highlight-js/ https://www.dastereo.ru/javascripts/ https://www.dastereo.ru/plugins/ https://www.dastereo.ru/theme-javascripts/ https://www.dastereo.ru/svg-sprite/ https://www.google-analytics.com/analytics.js”. لاحظ أنه لم يتم تعيين ‘script-src-elem’ بشكل صريح، لذا تم استخدام ‘script-src’ كبديل.

هل هناك حل سهل؟

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

الأفضل هو إعادة توجيه أحد النطاقين إلى الآخر.

هل تستخدم Cloudflare أيضًا؟ إذا كان الأمر كذلك، يمكنك استخدام قاعدتي صفحة لإعادة التوجيه من:

http://example.com/* :right_arrow: https://example.com/$1
https://example.com/* :right_arrow: https://www.example.com/$1