ملف JS بسبب سياسة CSP سيئة

مرحبًا،

لقد قمت بتثبيت مثيل Discourse أمس، واليوم يظهر لي صفحة سوداء، وفي وحدة التحكم أرى:

تم رفض تحميل السكربت 'https://ajax.cloudflare.com/cdn-cgi/scripts/95c75768/cloudflare-static/rocket-loader.min.js' لأنه ينتهك توجيه سياسة أمان المحتوى التالي: "script-src 'unsafe-eval' 'report-sample' [url]/logs/ [url]/sidekiq/ [url]/mini-profiler-resources/ [url]/assets/ [url]/brotli_asset/ [url]/extra-locales/ [url]/highlight-js/ [url]/javascripts/ [url]/plugins/ [url]/theme-javascripts/ [url]/svg-sprite/". لاحظ أنه لم يتم تحديد 'script-src-elem' صراحةً، لذا تم استخدام 'script-src' كبديل.
تم استلام رمز استجابة HTTP سيء (404) عند جلب السكربت.

كيف يمكنني إصلاح ذلك؟

قم بتعطيل Cloudflare لموقعك من لوحة تحكم Cloudflare. على وجه الخصوص، ميزة Rocket Loader غير متوافقة تمامًا مع Discourse.

هل يمكنك التوضيح لماذا هذا “غير متوافق تمامًا”؟ أنا أستخدمه في تطبيقات Rails أخرى مخصصة ومحسّنة للغاية بنجاح (عادة بعد قليل من التنقيح). أنا فضولي لمعرفة سبب عدم إعادة هيكلة Discourse لجعلها متوافقة مع مجموعة خدمات CloudFlare الكاملة نظرًا لاستخدامها الواسع.

اسأل CloudFlare لماذا، فهذا كودهم وليس كودنا.

لا توجد فائدة أو حافز حقيقي هنا.

يبدو أنك تعمل بناءً على افتراض أن كلاودفلير يمكنها تحسين كود ديسكورش بشكل أفضل من مطوري CDCK أنفسهم. على أي أساس تستند إلى هذا الافتراض؟

كلاودفلير جيدة كوسيلة تخزين مؤقت، ولكن يجب تعطيل جميع ميزات الأداء؛ وإلا فإن التثبيت الخاص بك لن يكون مدعومًا بالكامل.

من بعض النقاشات التي رأيتها هنا، يبدو أن هناك مشكلات تتعلق بظهور الرسم الأول الهادف بسرعة كافية في الاختبارات المختلفة، حيث أظهرت نتائجها مثل هذه النتائج. كنت آمل أن يقلل Rocket Loader من ذلك أكثر بينما يتم العمل الفعلي في هذا المجال لحل المشكلة.

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

شكرًا لتوضيح ذلك.

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

آمل أن يكون ذلك واضحًا بما يكفي.