فشل تمييز الكود بسبب bunny.net CDN

اشتكى أحدهم من أن تمييز الأكواد لا يعمل على موقعه. لقد قمت بتكرار المشكلة على موقعي. يبدو أن المشكلة هي أن شبكة توصيل المحتوى (CDN) محظورة بواسطة سياسة CORS:

image

لقد قمت بإصلاح المشكلة عن طريق إضافة js إلى إعداد “إضافة رأس CORS” في صفحة CORS:

إذا تم تمكين هذا الخيار، فستقوم شبكة bunny.net تلقائيًا بإضافة رؤوس CORS (مشاركة الموارد عبر الأصول) إلى جميع الطلبات للملفات ذات الامتدادات من القائمة.

هذا المنشور لتوثيق ذلك في حال واجه شخص آخر مشكلة مع شبكة توصيل المحتوى bunny.net وللتأكد من أنني أفهم هذا.

6 إعجابات

أعتقد أن هناك (أو كان هناك) إعداد في bunny يضيف js إلى cors؟ لدي (لسبب ما) js مضاف إلى cors لجميع مواردي على bunny.net ولكني لا أتذكر أنني أضفتها بنفسي. هل هو موقع جديد إلى حد ما؟

4 إعجابات

الموقع الذي لاحظوا فيه ذلك لأول مرة موجود منذ فترة طويلة (لا أتذكر متى بدأوا في استخدام bunny).\n\nلست متأكدًا مما إذا كان bunny قد تغير أو شيء ما يتعلق بالبرنامج النصي المضمن قد تغير.

إعجابَين (2)

كان التغيير الذي جعل هذا ملحوظًا على الأرجح هو https://github.com/discourse/discourse/commit/0878dde2132a34ba2787e702de222bc6dd161895، والذي قام بتبديل highlightjs للتحميل عبر import() الأصلي، والذي يتطلب رؤوس CORS عند جلب البيانات من شبكة توصيل المحتوى (CDN).

ولكن حتى قبل هذا التغيير، ربما كنت ستواجه بعض المشكلات مع أشياء مثل الخطوط المخصصة (التي تتطلب أيضًا رؤوس CORS لطلبات المصادر الخارجية).

من الناحية النظرية، يجب أن يضيف Discourse نفسه رأس CORS إلى استجابات شبكة توصيل المحتوى. إذا لم يكن كذلك، فمن المحتمل أن هذا يعني أن شبكة توصيل المحتوى الخاصة بك لا تقوم بتعيين اسم مضيف شبكة توصيل المحتوى (أي ليس اسم مضيف المنتدى) في رأس Host أو رأس X-Forwarded-Host.

ومع ذلك، فإن إضافة الرؤوس عبر تكوين شبكة توصيل المحتوى يحقق نفس الشيء على الأرجح :ok_hand:

4 إعجابات

تم إغلاق هذا الموضوع تلقائيًا بعد 30 يومًا من آخر رد. لم تعد الردود الجديدة مسموح بها.