موقع ويب فارغ بعد التحديث

مرحباً،

لقد قمت بتحديث منتدى Discourse الخاص بنا، والآن أصبح فارغاً (الصفحة الرئيسية ولوحة الإدارة). يبدو أن كود HTML سليم، وتغذيات RSS تعمل بشكل صحيح.

لاحظت أخطاء في JavaScript ناتجة عن قالبنا. هل يمكن أن يكون المشكلة من هنا؟
Capture d'écran 2020-08-22 à 15.57.03

كيف يمكنني إصلاح ذلك؟ هل يمكنني تعديل/تعطيل كود JavaScript الخاص بقالبنا عبر سطر الأوامر (CLI)؟ أم يجب تثبيت قالب جديد؟

تعديل: لا يوجد قوالب أخرى مثبتة لدي، لذا لا يمكنني استخدام ?preview_theme_id=

مرحبًا @CamilleRoux

يمكنك أيضًا تغيير السمة الافتراضية مباشرة في قاعدة البيانات باستخدام SQL، إذا كنت مرتاحًا للاستعلامات المباشرة على قاعدة البيانات.

نأمل أن يكون ذلك مفيدًا

هل جربت كيفية استخدام وضع الأمان في Discourse؟

ماذا تفعل :thinking: ؟

  • تحقق من وضع الأمان: https://forum.humancoders.com/?safe_mode=no_custom%2Cno_plugins%2Conly_official

  • سجلات الأحداث https://forum.humancoders.com/logs (خاصة؟)

جرب عبر SSH تشغيل الأمر التالي:

cd /var/discourse
git pull
./launcher rebuild app

وضع الأمان لا يعمل… نفس الخطأ:

ReferenceError: Discourse is not defined
    at https://forum.humancoders.com/assets/start-discourse-efa4e5abfbd1b50b5152ffbe64d5dcea9f7c33f766dcc6387e2711f0f2112148.js:1:1

لقد قمت بالفعل بإعادة البناء ./launcher rebuild app

لم يكن لدي سمات أخرى مثبتة، لذا يجب أن أقوم بتثبيت سمة جديدة عبر واجهة سطر الأوامر (CLI) أو تعديل السمة الحالية. لا أعرف كيفية القيام بذلك.

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

وهل لا توجد لديك إضافات من جهات خارجية؟

أعتقد أن ما تحتاج إلى فعله، ربما، هو في وحدة تحكم Rails، إنشاء موضوع جديد فارغ، ثم تغيير الافتراضي إلى الموضوع الجديد. لا أعرف، على الفور، كيفية القيام بذلك.

لست متأكداً تماماً بعد أن المشكلة ناتجة عن القالب.
ولكن إذا كان الأمر كذلك، نعم، يمكن لإنشاء قالب فارغ وتعيينه كافتراضي أن يحل المشكلة. لا أعرف كيف أفعل ذلك :frowning:

أنا أيضًا. :man_shrugging:

أنا أيضًا. أعتقد أنني أستطيع معرفة ذلك، لكن لدي الكثير من العمل المدفوع الذي أحاول عدم القيام به في عطلة نهاية الأسبوع.

مرحبًا @CamilleRoux

لقد قمت للتو بفحص موقعك من خلال تعيين سلسلة UA في وحدة تحكم المطورين إلى Google bot. سيؤدي هذا إلى عرض موقع Rails فقط دون تطبيق الصفحة الواحدة (SPA) الخاص بـ Ember.

يمكنك رؤية أن موقعك “مقبول” من منظور Rails، مما يشير إلى أن الحاوية تعمل بشكل صحيح، وكما افترضت، هناك مشكلة في JavaScript في سمة (مكون) موقعك.

انظر المرفق:

@CamilleRoux

هل يمكنك الوصول إلى موجه psql (أو استخدام وحدة تحكم Rails إذا فضلت ذلك) وتشغيل هذه الاستعلامات:

دعنا نتحقق من عدد السمات المثبتة لديك:

discourse=# select count(*) from themes;
 count 
-------
    22
(1 row)

دعنا نتحقق من معرف السمة الافتراضي الحالي:

discourse=# select value from site_settings where name = 'default_theme_id';
 value 
-------
 3
(1 row)

أيضًا، هل يمكنك تشغيل هذا الاستعلام؟

discourse=# select id, name, component, enabled from themes;
 id |           name            | component | enabled 
----+---------------------------+-----------+---------
  3 | Light                     | f         | t
  6 | Minima                    | f         | t
  7 | Hamburger Theme Selector  | t         | t
  2 | Material Dark             | f         | t
  8 | Vincent                   | f         | t
  5 | Material                  | f         | t
  9 | Simple                    | f         | t
 10 | Graceful Wide             | f         | t
 11 | Dark Wide                 | f         | t
 14 | Alien Night               | f         | t
 39 | md-composer-extras-neo    | t         | t
 40 | Plugin Outlets            | t         | f
 15 | User Card Directory       | t         | f
 41 | Raw Post Button           | t         | t
  4 | Graceful                  | f         | t
  1 | Dark for GSE              | f         | t
 42 | Dark                      | f         | t
 43 | discourse gifs            | t         | t
 44 | Cookie Consent Banner     | t         | t
 46 | Graceful Edits            | t         | t
 45 | Neo Stuff Scratch Sheets  | t         | t
 48 | Unformatted Code Detector | t         | t

بالمناسبة،

@CamilleRoux

لقد اختبرتُ هذا لك للتو.

بعد تشغيل الاستعلامات في مشاركتي أعلاه لعرض جميع السمات الخاصة بك (ولديك سجل للحالة الحالية لسماتك)، بافتراض إمكانية الوصول إلى قاعدة البيانات الخاصة بك وتشغيل هذا الاستعلام، سواء عبر Rails أو من psql؛ يمكنك تجربة ما يلي:

استعلام لتعطيل جميع مكونات السمة

discourse=#  update themes set enabled = false where component = true;

سيعمل الاستعلام أعلاه على إيقاف جميع مكونات السمة الخاصة بك.

ثم يمكنك رؤية “ما يحدث” عند محاولة الوصول إلى موقعك المعطل.

لو كنتُ في وضعك الحالي، بناءً على فحص موقعك كوكيل مستخدم (Bot UA)، لكنتُ قمت بتعطيل جميع مكونات السمة.

في الواقع، لكنتُ أوقفتها واحدة تلو الأخرى، بدءًا بأي مكون سمة يتعلق بروابط التنقل (انظر خطأ JS أدناه كبداية)؛ لأنني مرتاح ولدي خبرة في استعلامات SQL المباشرة لقواعد البيانات. هل تمتلك مهارات SQL قوية؟

إذا لم تكن مرتاحًا لذلك، يمكنك مراسلتي ومنحني الصلاحيات وسأساعدك في تجاوز هذا الوضع “غير الجيد” الذي تجد نفسك فيه. أنا متأكد جدًا، بناءً على المعلومات المتوفرة لدي حاليًا، من قدرتي على مساعدتك في العودة للعمل مرة أخرى :slight_smile:

انظر أيضًا خطأ JS الخاص بك:
Discourse.ExternalNavItem=Discourse.NavItem.extend({href:function(){return this.get('href');}.property('href')});I18n.translations.fr.js.filters.formations={title:"Formations",help:"Formations pour développeur·se·s"};Discourse.NavItem.reopenClass({buildList:function(category,args){var list=this._super(category,args);list.push(Discourse.ExternalNavItem.create({href:'https://www.humancoders.com/',name:'formations'}));return list;}});jQuery(function($){$(document).on("ready",function(){if(Cookies.get('hcFirstPage')==undefined){$(document).on('click','.toggle-menu',function(e){e.preventDefault();$('.main-nav').toggleClass('show');});var tweenBounce=TweenMax.to('#topbar',1.2,{maxHeight:"50px",delay:2,ease:Power1.easeInOut});var tweenBounceBack=TweenMax.to('#topbar',1.2,{maxHeight:"4px",delay:5.5,ease:Power1.easeInOut});Cookies.set('hcFirstPage',true,{expires:.04});}else{var tweenBounce=TweenMax.to('#topbar',0);}
window.addEventListener('unload',function(){Cookies.remove('hcFirstPage');});var tweenOpen,tweenClose;$('.topbar-toggle').on('mouseenter',function(){tweenBounce.kill();tweenOpen=TweenMax.to('#topbar',.4,{maxHeight:"50px",ease:Power1.easeInOut});});$('#topbar-zone-click').on('mouseenter',function(){tweenBounce.kill();tweenOpen=TweenMax.to('#topbar',.4,{maxHeight:"50px",ease:Power1.easeInOut});});$('#topbar').on('mouseenter',function(){tweenBounce.kill();tweenOpen=TweenMax.to('#topbar',.4,{maxHeight:"50px",ease:Power1.easeInOut});});$('#topbar-zone-click').on('mouseleave',function(){tweenOpen.kill();tweenClose=TweenMax.to('#topbar',.4,{maxHeight:"4px",ease:Power1.easeInOut});});$('.topbar-toggle').on('mouseleave',function(){tweenOpen.kill();tweenClose=TweenMax.to('#topbar',.4,{maxHeight:"4px",ease:Power1.easeInOut});});$('#topbar').on('mouseleave',function(){tweenOpen.kill();tweenClose=TweenMax.to('#topbar',.4,{maxHeight:"4px",ease:Power1.easeInOut});});});});

حسنًا، شكرًا لكم أيها الأصدقاء على مساعدتكم.
هذا تثبيت قديم، ولم يكن لدي أي سمة أو مكون آخر مثبت. لذا لم تستطعوا تغيير سمّتي أو تعطيل جميع المكونات.
لذلك استعدت نسخة احتياطية قديمة، وحدّثت سمّتي، ثم حدّثت Discourse. الوضع أفضل، لكن لا يزال لدي خطأ واحد (من خطأين سابقين).

إليك الخطأ:

Uncaught ReferenceError: Discourse is not defined
<anonymous> /assets/start-discourse-efa4e5abfbd1b50b5152ffbe64d5dcea9f7c33f766dcc6387e2711f0f2112148.js:1

إليك ما يحتويه هذا الملف:

Discourse.start();

هل لدي إصدار قديم من السمة الافتراضية؟ (تم إنشاء السمة الحالية في عام 2016 ببساطة بإضافة بعض CSS و JS إلى السمة الافتراضية)

ملاحظة: الموقع يعمل مرة أخرى لأنني أستخدم النسخة الاحتياطية دون تحديث Discourse.

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

تحديث صغير: لقد واجهت خطأً في بعض إصدارات Discourse وليس في جميعها.
يعمل بشكل صحيح على stable و tests-passed ولكنه لا يعمل على beta. لذا أقر بأن الخطأ قد تم إصلاحه بالفعل ولكن لم يتم دمجه في beta.

لكن المشكلة تتعلق بتخصيص نسختك من السمة أم بالسمة الافتراضية؟

مع نسخة الاختبار الحالية، أواجه نفس الخطأ بغض النظر عن السمة.