صور نقاشنا لا تظهر في نافذة منبثقة

أتفق معك، هل يمكن تعديل launcher لتنبيه المستخدمين بشأن هذه المشكلة أو منعها الأسبوع القادم @falco؟

أواجه نفس المشكلة، هل يمكنك توضيح ما هو الاسم الدقيق الذي تحتاجه لإعادة تسمية ملف .yml؟

هل يجب تضمين نطاق المستوى الأعلى (TLD) والنطاق الفرعي كجزء من اسم ملف yml؟ بالنسبة لهذا الموقع، هل سيكون الاسم meta.discourse.org.yml؟

أعد تسميته إلى meta_discourse_org.yml.

يجب أن تسبق النقطة . الوحيدة في اسم الملف الامتداد فقط.

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

أي ملف سجل تقصد؟ أحاول التأكد مما إذا كانت هذه هي المشكلة نفسها.

كما أنني قمت بتفعيل خيار إجبار موقعك على استخدام HTTPS فقط وقمت بحظر المنفذ 80 على الجدار الناري.

cd /var/discourse
./launcher enter app
tail -f /shared/log/rails/production.log

انظر أيضًا إلى هذه المقالة بخصوص سجلات Discourse.

إذا حدث هذا فقط للمشاركات الموجودة، لكن الصور المنشورة حديثًا سليمة، فقد ساعدني تشغيل الأمر التالي:

rake uploads:recover_from_tombstone
rake posts:rebake

انظر أيضًا إلى هناك.

كلها مفيدة جدًا، شكرًا لك.

يبدو أنني أعاني من نفس المشكلة مع الخطأ can't reach '/uploads/default...

السطر التالي في ملف السجل الخاص بي هو
Started GET "/posts/950" for 127.0.0.1 at 2020-07-07 08:24:05 +0000

هل لديك أي أفكار حول سبب محاولة الاتصال عبر عنوان IP المحلي (loopback) بدلاً من اسم الحاوية الجديد أو عنوان IP المحلي للحاوية؟

يبدو أن هذه المشكلة خاصة بالتركيبات غير القياسية التي تجمع بين:

  • عدم استخدام أمر ./discourse-setup وإنشاء ملف yml يدويًا

  • استخدام وكيل عكسي (reverse proxy)

  • أن يكون هذا الوكيل العكسي مُعدًا بطريقة سحرية باستخدام اسم حاوية Docker

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

في الواقع، استخدمته، لكن قمت بإعادة تسمية الملف لاحقًا لأن لدي نسختين من Discourse تعملان، وإلا لكان كلاهما يُسمى app في نفس مثيل Docker.
أعتقد أنه من المعقول إعادة تفعيل الملف باسم النطاق المستخدم.

من المرجح أن يكون ذلك شائعًا جدًا للمجتمعات الأصغر التي تشغل مواقع متعددة على خادم واحد.

لم يكن وكيل العكس هو السبب في مشكلة الاسم. بل كانت Docker نفسها لأنها تضيف تلقائيًا اسم الحاوية إلى DNS الداخلي الخاص بها. كانت المشكلة أن اسم حاوية Discourse في Docker كان نفس الاسم مثل اسم DNS الخارجي الخاص به (مثل app.ymlmeta.discourse.org.yml).

أقترح إظهار تحذير قوي على الأقل إذا تطابق اسم الملف مع اسم النطاق المعطى في ملف .yml.

ما زلت أعاني من نفس المشكلة المتمثلة في عدم القدرة على الوصول إلى الصورة للحصول على أبعادها.

لا يمكن الوصول إلى ‘/uploads/default/original/1X/9385b0977b09b0f2239c287de980b6fc238d0da0.png’ للحصول على أبعادها.

هذا مع تثبيت قياسي تمامًا باستخدام ./discourse-setup

هل هناك أي أفكار أخرى حول كيفية إصلاح ذلك؟

ماذا يحدث إذا حاولت تنزيل الصورة داخل تطبيق Discourse الخاص بك؟

./launcher enter app
wget https://yourdomain.com/uploads/default/original/1X/9385b0977b09b0f2239c287de980b6fc238d0da0.png

هل توجيه حل الأسماء يشير إلى عنوان IP الصحيح؟

apt-get update
apt-get install inetutils-ping
ping yourdiscoursedomain.com

أو

apt-get update
apt-get install dnsutils
nslookup yourdiscoursedomain.com

شكرًا مجددًا على مساعدتك يا مايكل، فهي مُقدَّرة جدًا.

يمكنني الاتصال بالنطاق بنجاح، لكن يبدو أن wget يحاول المرور عبر وكيل ويب.

لقد اتبعت هذا الدليل وأضفت متغير no-proxy في جميع الأماكن ذات الصلة.

هل هناك شيء أفتقده؟ كيف يمكنني تكوين الحاوية لعدم استخدام وكيل الويب الذي يستخدمه الخادم؟ هل أحتاج إلى إضافة استثناء وكيل إلى ملف app.yml؟

لقد أضفت نطاق no-proxy الخاص بي إلى معامل no-proxy في ملف app.yml وأعدت البناء، والآن يتم تجاهل الوكيل كما هو مطلوب.

ما زلت أحصل على أخطاء عند تنفيذ أمر wget من داخل التطبيق:

تحذير: شهادة ‘MYDOMAIN.com’ غير موثوقة.
تحذير: شهادة ‘MYDOMAIN.com’ لا تحتوي على جهة إصدار معروفة.

ويرجع ذلك إلى أن شهادة SSL الخاصة بي صادرة عن جهة داخلية. عندما أشغل نفس أمر wget مع العلم --no-check-certificate، يعمل الأمر بشكل صحيح.

كيف يمكنني إما إضافة الشهادة لتكون موثوقة، أو إضافة العلم لتعطيل التحقق؟

@Michael_Uray هل تعرف أين يجب أن أضيف شهادة CA الجذرية للسماح لحاوية Discourse بالثقة في شهادة SSL؟

لقد اتبعت هذا الدليل (https://www.techrepublic.com/article/how-to-install-ca-certificates-in-ubuntu-server/)، لكنني أعتقد أنه ينطبق على الخادم نفسه وليس على الحاوية التي تشغّل Discourse.

يجب عليك بالتأكيد الدخول إلى الحاوية وإضافة الملف هناك إذا لم تكن تستخدم وكيلًا عكسيًا، لكن أعتقد أن هذا لن يكون دائمًا بهذه الطريقة. أظن أنك ستحتاج إلى إضافة الملف بطريقة ما إلى ملف app.yml أو جعل مسار شهادة CA المناسب داخل الحاوية دائمًا بطريقة ما عبر ملف app.yml.