واو، حسنًا. هذا على الأرجح الدليل القاطع ويشير إلى مشكلة مختلفة.
كلمة avatar_proxy في السجلات تعني عادةً أن Discourse يرفض تقديم الصورة الرمزية مباشرةً من شبكة توصيل المحتوى (CDN) الخاصة بـ Cloudflare R2. بدلاً من ذلك، يقوم Discourse باعتراض الطلب بشكل نشط وتحميل الصورة من R2 إلى مجلد /tmp على الخادم المحلي، ثم يستخدم Ruby لتقديم الصورة للمتصفح. لذا، أعتقد أن هذا يتجاوز شبكة توصيل المحتوى تمامًا ويشرح التأخير لمدة 3 ثوانٍ — أشك في أن الخادم يقوم بجلب وتحميل الملف يدويًا في كل طلب ![]()
يستخدم Discourse avatar_proxy في عدد قليل من السيناريوهات المحددة جدًا، وعادةً ما يكون ذلك بسبب إعدادات الخصوصية أو الأمان التي تجبر الخادم على إخفاء عنوان URL الخارجي.
تحقق من هذه الإعدادات في لوحة الإدارة - إعدادات الموقع:
ابحث عن external system avatars url — إذا كان هناك أي شيء في هذا المربع (مثل /letter_avatar_proxy/v4/...)، فاحذفه ليصبح فارغًا. يجب أن يتوقف ذلك عن قيام Discourse بتمرير الصور الرمزية الافتراضية للحروف. يستحق أيضًا التحقق من uploaded avatars allowed groups والتأكد من أنه يحتوي على TL_0.
ربما تضاعف التحقق من DISCOURSE_S3_CDN_URL للتأكد من صحته دون شرطة مائلة في النهاية أو خطأ إملائي؟
إعادة تعيين الصور الرمزية المخصصة:
يبدو من المرجح أن قاعدة بياناتك لا تزال تحتوي على عناوين URL الخام لحوض R2 بدلاً من عنوان URL الجديد لشبكة توصيل المحتوى؛ لأنهما لا يتطابقان، فمن المرجح أن المنتدى يقوم بتمريرها لأسباب أمنية.
تحقق في وحدة تحكم Rails لمعرفة ما يتعامل معه Discourse بالضبط:
./launcher enter app
rails c
اختر اسم مستخدم يحتوي على صورة رمزية بطيئة التحميل
u = User.find_by_username("the_selected_username")
u.user_avatar.custom_upload.url
إذا كان الإخراج يعيد عنوان URL خام للحوض، فهذا يعني أن عمليات إعادة التعيين السابقة لم تلتقط كل شيء (ربما فاتت نطاقًا فرعيًا أو مخططًا).
لإصلاح ذلك، قم بتسجيل الدخول عبر SSH إلى الخادم، وعد إلى الحاوية مرة أخرى (وليس Rails) (./launcher enter app)، ثم قم بتشغيل أداة إعادة التعيين (مرة أخرى LOL) لاستبدال عنوان URL الخام بعنوان URL الخاص بشبكة توصيل المحتوى:
discourse remap "https://<your-raw-cloudflare-url>.r2.cloudflarestorage.com" "https://cdn.your-domain.com"
ثم قم بتشغيله مرة ثانية باستخدام // بدلاً من https:// في حال حدوث ذلك.
بالمناسبة، مجرد فضول، ما هي خدمة الاستضافة التي تستخدمها؟ لدي نفس الإعداد العام مثلك ولم أواجه هذه المشكلة بعد. لذا أنا مهتم أيضًا بتكوينك وأريد محاولة إعادة إنتاجه بطريقة ما.