خطأ Discourse_docker (blocked:csp) مع svg-sprite عند استخدام المجلدات الفرعية

لدينا بالفعل جميع المنطق المطلوب لـ SVG sprites في سيناريوهات المجلدات الفرعية، وقد تم استخدامه بنجاح من قبل عدد من المواقع. في هذه الحالة، واجهنا حالة حافة محددة جدًا. عند فحص المتغيرات الرئيسية في موقع @vkozyrev (في وحدة تحكم المتصفح):

> Discourse.SvgSpritePath
"/svg-sprite/sales-community-staging.rainmakers.co/svg-2-8ed106e6e3d908b1b86898dfe93a7bac0fd358f4.js"
> Discourse.BaseUri
"/sales-community"

يبدو كل شيء على ما يرام. الآن، عند تحميل ورقة SVG sprite، نستخدم loadScript، الذي بدوره يستدعي Discourse.getURL. هذه الدالة مسؤولة عن إضافة بادئة المجلد الفرعي. لنجرب ذلك:

> Discourse.getURL(Discourse.SvgSpritePath)
"/svg-sprite/sales-community-staging.rainmakers.co/svg-2-8ed106e6e3d908b1b86898dfe93a7bac0fd358f4.js"

هاه… لم يفعل ذلك شيئًا. رابط عشوائي آخر يعمل بشكل صحيح:

> Discourse.getURL("/blah")
"/sales-community/blah"

بحثًا أكثر قليلًا يكشف عن هذا السطر داخل getUrl

if (url.indexOf(Discourse.BaseUri) !== -1) return url;

أو، باللغة العربية: “إذا كان الرابط يحتوي بالفعل على بادئة المجلد الفرعي، توقف”. إذن المشكلة هنا هي أن بادئة المجلد الفرعي الخاصة بـ @vkozyrev (/sales-community) مدمجة في منتصف رابط ورقة SVG sprite

/svg-sprite/sales-community-staging.rainmakers.co/svg-2-8ed106e6e3d908b1b86898dfe93a7bac0fd358f4.js

لقد جعلت الفحص أكثر تحديدًا، بحيث يتحقق فقط من وجود بادئة المجلد الفرعي في بداية الرابط:

رغم أن هذا يدفعني للتفكير في مشاكل محتملة أخرى… على سبيل المثال، إذا أراد شخص ما أن تكون بادئة المجلد الفرعي الخاصة به /t أو /about، أو أي رابط آخر نستخدمه في Discourse :thinking:

10 إعجابات