أعتذر إذا كان تشخيصي خاطئًا، لكنني واجهت مؤخرًا بعض المشاكل بعد ترقية في إعداد المجلد الفرعي الذي كان يعمل سابقًا، لذا أعتقد أنه قد يكون هناك تراجع في بعض الجوانب مؤخرًا؟ على وجه التحديد، أقوم باستضافة Discourse بنفسي باستخدام إعداد المجلد الفرعي الموصوف هنا، والذي كان يعمل بسعادة (بحسب فهمي) حتى وقت قريب.
حاليًا، عند تسجيل الدخول باستخدام SSO أو عند التبديل من/إلى الوضع المجهول (وربما في حالات أخرى لم أكتشفها بعد)، يتم إعادة توجيهي إلى https://my_machine/discourse_path_stuff، بدلاً من إعادة التوجيه إلى https://my_machine/forum/discourse_path_stuff. كما أنه عندما أذهب إلى https://my_machine/forum (النهاية الصحيحة)، يتم إعادة كتابة شريط العناوين ليقول https://my_machine (مع إزالة المجلد الفرعي)، على الرغم من أن معظم الروابط تبدو أنها تحل إلى الأماكن الصحيحة.
للأسف، لا أتذكر أي إصدار كنت أستخدمه عندما كانت الأمور تعمل بشكل صحيح، لكنني متأكد تقريبًا أنه كان ضمن مظلة “2.4.0.beta10”، وكان على الأرجح خلال الـ 10 أيام الماضية. وأنا أعمل حاليًا على الإصدار bd49d4af1a.
أعتذر إذا كنت أقوم بشيء غبي، وسعيد بالمساعدة في تتبع المشكلة إذا كانت هناك اقتراحات حول المكان الذي يجب أن أبحث فيه.
نحن نستخدم بروتوكول Discourse SSO، والذي كان يعمل بسلاسة بالتأكيد من قبل. لا يزال المصافحة يبدو أنه يحدث بشكل صحيح، فقط إعادة التوجيه إلى المكان الخطأ في النهاية. ومع ذلك، فإن المفتاح "return_sso_url" في حمولة SSO يعود إلى نقطة نهاية SSO لدينا بشكل صحيح (مع /forum).
جربت أيضًا إعادة البناء، لكن هذا لم يبدو أنه يحل المشكلة.
للأسف، قد يكون من الصعب تصحيح هذا الخطأ لأنني لست مرتاحًا تمامًا لمنح أشخاص خارجيين الوصول، حيث توجد هذه النسخة لدورة دراسية، ولا أشعر بالراحة في مشاركة بيانات الطلاب مع أطراف خارجية (حتى لو كنت أثق بك شخصيًا!). ولكن إذا كان ذلك يساعد، فسأكون سعيدًا بمحاولة تكرار هذا الإعداد على خادم مختلف يمكنني منحك الوصول إليه…
أرى أيضًا أن الرابط للدخول/الخروج من الوضع المجهول يستخدم window.location.reload() لإعادة تحميل الصفحة بعد إرسال طلب إلى نقطة نهاية للتبديل إلى الوضع المجهول. لذا فإن إعادة التحميل هذه ستُظهر بالتأكيد عنوان URL المُعاد كتابته (الذي لم يعد يحتوي على /forum)، مما يتسبب في هذه المشكلة (غير متأكد ما إذا كانت القصة مماثلة لمشاكل SSO).
سألقي نظرة سريعة على مجموعات التغييرات الأخيرة لأرى ما إذا كان العنصر الذي (أعتقد؟) يعيد كتابة window.location هو إضافة حديثة.
أيضًا، Discourse.getURL('/login') لا يزال يعطيني النتيجة الصحيحة (مع /forum).
تُعاد تعيين المسارات بدون بادئة المجلد الفرعي في شريط عناوين المتصفح.
مثال:
أزور example.com/forum → بعد تحميل المنتدى، يُظهر شريط العناوين example.com
ثم أضغط على “الأحدث” → ينتقل إلى الأحدث ويُظهر شريط العناوين example.com/forum/latest
أقوم بتحديث الصفحة في المتصفح، فتُحدّث الموقع ويُظهر شريط العناوين example.com/latest
عند التحديث مرة أخرى وأكون على example.com/latest، يظهر خطأ 404 (لأن nginx يقوم بتوجيه /forum فقط إلى discourse).
تظهر معاينة الرابط في أسفل يسار المتصفح كـ example.com/latest،example.com/new، إلخ. عند تحديث موضوع ما، يتم حذف /forum من الرابط، لكنه يتغير مرة أخرى لاحقًا إلى /forum/t/[…].
كنت أستخدم الإصدار 2.4.0.beta2 سابقًا ولا أتذكر وجود هذه المشكلة.
ومع ذلك، بعد التصفح في الالتزامات الأخيرة (أو القريبة من ذلك)، لم أستطع رؤية نقطة واضحة حيث يحدث هذا إعادة الكتابة. هل من الممكن الحصول على مؤشر إلى المكان الذي يحدث/حدث فيه هذا في الكود؟ (أنا في عملية محاولة التعرف على قاعدة الكود).
نعم، يمكن ذلك! لكنني لست الشخص المناسب. أنا مجرد “ذلك الشخص” في الفريق الذي يمتلك تثبيتًا محليًا في مجلد فرعي، لكنني لست مهندسًا. يجب أن يتمكن ديفيد من توجيهك إلى الاتجاه الصحيح عندما يبدأ العمل على هذه المشكلة في وقت لاحق من هذا الأسبوع.