أحتاج إلى عناوين URL نسبية للصور المرفوعة

كيف يمكنني جعل Discourse يولد عناوين URLs نسبية للصور المرفوعة؟

لدي موقع متاح عبر HTTPS و عبر عنوان .onion الخاص بـ TOR، وأحتاج إلى طريقة لجعل الصور تعمل على كليهما.

كيف يمكنني إعداد Discourse بحيث يتم تحويل عناوين upload:// إلى عناوين URLs نسبية داخل وسم <img>؟ أين (في أي ملف مصدر) يتم تنفيذ عملية توليد هذه العناوين؟

لا أعتقد أن عناوين URLs النسبية للصور هي إعداد مدعوم، وقد يكون هذا التغيير صعبًا للغاية cc @sam

للتوضيح فقط:

يعمل الرفع بشكل صحيح من نطاق HTTPS ومن خدمة .onion المخفية في TOR، لكن كود HTML الفعلي المُولَّد للمنشور يستخدم عنوان URL كامل، وهو ما يُشكّل مشكلة.

أفترض أن هناك كودًا في مكان ما يقوم بشيء مثل:

 '<img src="' + Discourse.base_url_no_prefix + '/uploads/....jpg' + '">'

وأحتاج إلى أن يُنتج:

 '<img src="' + '/uploads/....jpg' + '">'

هل سيكون التلاعب بـ absolute_without_cdn أمرًا منخفض المستوى جدًا ويؤثر على أشياء كثيرة؟

يجب أن يكون عنوان URL نسبيًا لأن:

  • المتصفح العادي لا يمكنه الوصول إلى عنوان .onion.
  • لا يمكن الوصول إلى الموقع العادي عبر TOR لأنه خلف حماية من هجمات الحرمان من الخدمة (DDoS). وحتى لو عمل، لا أريد تسريب تفاصيل إلى عُقد الخروج في TOR.

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

سيكون الأمر على غرار: إذا لم تكن شبكة توصيل محتوى (CDN) مُهيأة، قم بإنشاء عنوان URL نسبي.

أفترض أنك تحتاج إلى إعداد هذا فقط عند تغيير التكوين؟

تخيل وجود

'<img src="' + Discourse.cdn_url_no_prefix + '/uploads/....jpg' + '">'

عند عدم وجود CDN مُعد، يمكن ببساطة أن يكون Discourse.cdn_url_no_prefix سلسلة فارغة.

هل يعني ذلك أن هناك فرصة لتنفيذ هذا في المستقبل (القريب)؟

فقط لإضافة صوتي والموافقة مع @sam، لقد مررنا بالفعل ببعض التغييرات في نطاقاتنا، ومن المؤكد أن عناوين URL النسبية ضرورية.

أود أن أضيف صوتي مؤيدًا للروابط الداخلية النسبية. حاليًا، أستخدم عناوين URL كاملة للإشارة، على سبيل المثال، إلى موضوع آخر على نفس الموقع.

في الواقع، انتقل موقعنا مؤخرًا إلى نطاق جديد (مع ملاحظة أن إعادة التوجيه نشطة حاليًا):

وقام مضيفنا الجديد، Communiteq (سابقًا DiscourseHosting)، بإجراء تعديل لطيف على قاعدة بياناتنا باستخدام أداة sed مذكورة هنا لتعكس هذا التغيير.

ربما تكون هناك أسباب تقنية للوضع الحالي؟ هل يمكننا استخدام شيء مثل %{THIS}/t/000 في المستقبل؟ بصفتي مطورًا، فإن المسارات المطلقة عادةً ما تثير في نفسي القلق. كما أن هناك مسألة الانتقال من http: إلى https:، وهو ما قمنا به أيضًا (أو على الأقل فرضناه بشكل أكثر صرامة) كجزء من الهجرة المذكورة أعلاه. يبدو أن هذا يشبه إلى حد كبير حالة الاستخدام التي أشار إليها @mreach.

كما هو معتاد، جزيل الشكر لفريق Discourse على هذا المنتج الرائع. ر.

لا يُعد عادةً أمرًا كبيرًا إجراء بحث واستبدال مستهدف في جميع المنشورات المتأثرة عند تغيير النطاق.