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

How can I get Discourse to generate relative URLs for uploaded images?

I have a site that is available over HTTPS and a TOR .onion and I need a way to get images working for both.

How can I configure Discourse so that upload:// URLs are converted to relative URLs in the <img> tag? Where (which source file) does this URL generation take place?

I don’t think relative image URLs is a supported configuration, and that might be a very difficult change cc @sam

إعجاب واحد (1)

Just to clarify:

Uploading works correctly both from the HTTPS domain and the TOR hidden service .onion but the actual HTML generated for a post uses a full URL which is a problem.

I’m assuming somewhere there is some code that does something like

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

and I need it to generate

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

Would playing with absolute_without_cdn be too low-level and affect too many things?

The URL needs to be relative because:

  • A normal browser cannot access the .onion URL.
  • Cannot access the normal site over TOR because it is behind DDoS protection. And even if it worked, I don’t want to leak details to TOR exit nodes.
إعجاب واحد (1)

This would require some internal changes, I am somewhat sympathetic cause it makes life a bit easier when changing domain names for sites that do not use A CDN.

Would have to be something like, IF no CDN configured then cook a relative url.

3 إعجابات

I assume you only need to set this up when the configuration is changed?

Imagine having

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

When there is no CDN configured then Discourse.cdn_url_no_prefix can simply be a empty string.

Does that mean that there is a chance you can implement this in the (near) future?

Just to add a voice and to agree with @sam, we’ve already had some switcheroos with our domains and relative URLs is most certainly needed.

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

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

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

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

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

إعجاب واحد (1)

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

إعجاب واحد (1)