يجب أن أعترف أنه من الصعب للغاية تكراره! إنه غير متسق للغاية ولم نتمكن من إيجاد نمط له.
@pmusaraj سؤال سريع -
هل نعتقد أن ذلك مرتبط بـ discourse ككل أم بموضوع معين؟ لم أتمكن من تحديده لمكون واحد بعد ولكن أفكر فيما إذا كان ذلك قد يصلحه؟
أعتقد أنه ليس موضوعًا أو مكونًا محددًا، بل من المحتمل أن يكون له علاقة بـ Discourse ككل. لقد قمت بإعادة إنتاجه في وقت سابق من هذا الأسبوع على موقع Discourse لم يتم تثبيت أي مكونات عليه تقريبًا.
شكرا للمشاركة! إنه أمر محبط لأن تجربة المستخدم سيئة للغاية بسبب ذلك ويجب على المستخدمين إعادة تحميل الصفحة أو العودة. أحاول فقط أن أكون استباقيًا بشأن حل بديل
يحدث هذا مع النطاق الفرعي الجديد لـ discourse discover (سطح مكتب سفاري):
يبدو أنه يحدث بشكل عشوائي، وليس كثيرًا. هل هناك أي طريقة لتشغيل اختبار تشخيصي عند حدوث ذلك للكشف عن المشكلة؟
بناءً على تحليلنا حتى الآن، يعتقد النطاق الفرعي discourse أنه لا يزال هو المضيف وأن أي أصل/رابط نسبي معطل. مما يعني، ما لم تستخدم مسارًا مطلقًا (قل discourse.org/css/main.css بدلاً من /css/main.css) فسيعمل. ولكنه حل بديل مجنون جدًا لأنه سيشمل أي أيقونة أو صورة أو رابط أو جافاسكربت أو CSS إلخ.
يحدث هذا لكل من سطح المكتب والجوال لـ Safari فقط.
- لا تزال أجزاء الصفحة المطلوبة (نطاق خارجي) تظهر في سجل Discourse، بينما كان ينبغي تسجيلها في النطاق الخارجي. لم أتمكن من تصحيح الخطأ عندما يحدث

- أحد الحلول البديلة (بدلاً من تغيير كل CSS/JS/HREF إلى مسار مطلق) هو وضع في رأس جميع الصفحات ذات الصلة (على النطاق الخارجي)

لقد أبلغت للتو عن مشكلة ذات صلة قبل أن يتم توجيهي إلى هذا، والذي يبدو أنه ذو صلة.
لقد قمنا للتو بالترقية إلى Discourse 3.2 قبل يومين ومنذ ذلك الحين نتلقى تقارير عن مشكلة مماثلة. على الرغم من أنها ليست متعلقة بـ CSS في حالتنا، أعتقد أن المشكلة هي نفسها في الأساس.
بعد النقر على رابط في Discourse إلى موقعنا الرئيسي، لا يزال المتصفح يعتقد أنه في المنتدى: عنوان URL في المتصفح يقول ذلك (!)، وأحيانًا تفتح الروابط (بعضها؟ ربما نسبية) في نطاق المنتدى بدلاً من ذلك، مع ظهور خطأ يفيد بأن صفحة المنتدى غير موجودة. التقارير التي لدينا حتى الآن كلها على iPhone/iPad. لا يمكنني إعادة إنتاج ذلك على الإطلاق، ولكن يبدو أن المتأثرين يواجهونه عدة مرات في اليوم. بالنظر إلى سجلات Discourse، يمكنني التأكد من وجود العديد من طلبات 404 للصفحات الموجودة فقط على موقعنا الرئيسي.
أنا في حيرة من أمري بشأن قيام المتصفح بفتح موقع ويب واحد وعرض عنوان URL لموقع آخر (بدون إطارات). نظرًا لكونه خطأ في Safari، آمل بالتأكيد أن يقتصر هذا فقط على نطاق علوي، حيث أن الآثار الأمنية بخلاف ذلك وخيمة للغاية.
على أي حال، أعتقد أن شيئًا يجب أخذه في الاعتبار هو أن هذا بدأ يحدث فقط بعد ترقيتنا إلى Discourse 3.2، لذلك تغير شيء ما منذ 3.1 مما يؤدي إلى حدوث ذلك.
ربما يكون مجرد تخمين بعيد، ولكني أتساءل عما إذا كان هذا قد يتعلق بتطبيقات PWA وكيفية معالجتها بواسطة Safari؟ يعلن موقعنا الرئيسي عن تطبيق PWA - وكذلك يفعل منتدى Discourse الخاص بنا. كلاهما standalone ومع start_url: \"/\" (يضبط موقعنا id فريدًا، لكن Discourse لا يفعل ذلك). على حد علمي، لا تحدد ملفات بيان PWA اسم مضيف معين تعمل فيه، لذلك أفترض أنها تلتزم بالاسم المحدد الذي تستضيف فيه. في حالتنا، فإن PWA’s هما في نطاقات فرعية منفصلة ولكن نفس النطاق؛ في كيفية معالجة المتصفحات لذلك، قد يكون هناك مجال لإحداث فوضى وإرباك المتصفح. ولكن مرة أخرى، هذا مجرد تخمين تام.
إذا كان هذا من رابط شائع (في حالتنا هو أيقونة تنقل في الأعلى)، فربما يمكن أن يكون target=_blank (أو حتى target=_top؟) بمثابة حل بديل مؤقت؟
على حد علمي، جربنا ذلك بالإضافة إلى استبدال HREF بدالة JS التي قامت بـ ‘window.open’ ولا يزال نفس النتيجة.
تذكر: إنه يقوم بجلب الصفحة الخارجية - لذا فإن DNS لهذا النطاق الجديد يعمل بشكل جيد، ومع ذلك، فإنه لا ينتقل إلى هذا النطاق أثناء تنفيذ البرنامج النصي وجلب موارد المسار النسبي لتلك الصفحة. لذلك، كما قلت، لم يتم تحديث/تبديل “base” HREF الداخلي لـ Safari بواسطة جلب الصفحة - مما يؤدي إلى تحميلها بالنسبة للنطاق “الأساسي” الحالي → 404
هل من الممكن تحميل JS أو CSS من discourse عن قصد؟
لقد جربت نهج target=_blank وجميع التقارير حتى الآن تفيد بأن المشكلة قد اختفت. ليست مثالية، ولكن من الجيد الحصول على حل مؤقت حتى يكون هناك مزيد من الوضوح بشأن هذا الأمر.
على أي حال، لا يحدث هذا فقط عند النقر الذي يبدأه المستخدم على رابط، ولكن أيضًا عند “إعادة توجيه” بواسطة جافاسكريبت.
نحن نستخدم SSO في منتدانا ونقوم بإعداد إعادة توجيه تسجيل الخروج بعنوان URL للموقع الرئيسي. عندما يقوم المستخدم بتسجيل الخروج من المنتدى وتقوم Discourse “بإعادة توجيهه” إلى موقعنا الرئيسي، يؤدي هذا أيضًا إلى حدوث المشكلة في سفاري. بالنظر إلى وحدة التحكم، هذه ليست إعادة توجيه 302 فعلية، لذا ربما يكون window.location.
شكراً للمناقشات وتصحيح الأخطاء هنا يا رفاق.
هذا الحل البديل بسيط بما يكفي لتجربته، لذلك أضفته إلى هذا الموقع (meta.discourse.org) عبر مكون سمة. إذا كان يحل المشكلة، فسيكون ذلك رائعًا لأنه يشتبه في أنه يمكن أن يساعد مطوري Webkit في تصحيح المشكلة الأساسية. (وبشكل مستقل، يمكننا أيضًا تقييم إضافة علامة base إلى Discourse core افتراضيًا.)
فهمي هو أن الحل البديل للوسم base قد يساعد عند تطبيقه على موقع خارجي، حيث يبدو أن المشكلة تحدث بعد مغادرة موقع discourse.
هل يتم إجراء الاختبار على meta للتعامل مع الحالة المحددة للروابط بين مثيلي discourse مختلفين؟ أم أنني ضللت الطريق في مكان ما (محتمل جداً!
)؟
نعم، كانت مشكلتنا الأكثر شيوعًا هي الروابط بين مثيلين من discourse. أعتقد أنه من الممكن أن يساعد الحل البديل لعلامة base أيضًا إذا تم استخدامه على الموقع المصدر (ولم يكن الوجهة مثيل discourse). إذا كانت المشكلة الأساسية هي أن Safari/Webkit يربك عناوين URL الأساسية (وهذا ليس بعيدًا عن تخيلات PWA الخاصة بك أعلاه)، فقد يساعد إضافة علامة base مختلفة إلى أي من الموقعين في كسر الافتراض الخاطئ الذي يكمن في جذر المشكلة؟ هذا مجرد تخمين من جانبي أيضًا، ولكنه يستحق التجربة.
حسنًا، يبدو أنه يعطلها بالفعل. لقد قمت بتعطيل المكون الذي يحتوي على الوسم base مؤقتًا.
مرحباً
لا أعرف ما إذا كان هذا جديدًا أم لا ولكني جربته الآن على جهاز iPad. لاحظت أنه يحدث في كل مرة بعد تغيير الصفحة باستخدام تنقل المتصفح أو إيماءة التمرير. يحدث أحيانًا في حالات أخرى أيضًا. يمكن تكراره بسهولة حقًا على الصفحة الرئيسية لموضوع Meta Branded. مع أزرار شريط البحث.
في الفيديو، المرة الأولى للعودة باستخدام تنقل المتصفح. المرة الثانية للعودة باستخدام إيماءة التمرير. المرة الثالثة للعودة بالنقر على الشعار.
رائع، نعم، هذه الخطوات تعيد إنتاج المشكلة في كل مرة بالنسبة لي على سطح المكتب سفاري. عمل جيد يا @Don ![]()
في شكل نصي:
-
افتح meta.discourse.org في سفاري
-
انقر على “Guides”
-
ارجع (باستخدام الزر، الإيماءة، اختصار لوحة المفاتيح، أيًا كان)
-
انقر على “Our Hosting”، وهو رابط إلى
discourse.org/pricing -
لاحظ الصفحة المعطلة.
window.locationلا يزالmeta.discourse.org، ولكن HTML منdiscourse.org/pricing

