Sito web vuoto dopo l'aggiornamento

Ciao,

Ho appena aggiornato il nostro Forum Discourse e ora è vuoto (homepage e pannello di amministrazione). L’HTML sembra corretto e i feed RSS funzionano.

Ho rilevato errori JavaScript dovuti al nostro tema. Il problema potrebbe dipendere da qui?
Capture d'écran 2020-08-22 à 15.57.03

Come posso risolvere? Posso modificare o disabilitare il codice JavaScript del mio tema da riga di comando? Devo installare un nuovo tema?

Modifica: Non ho altri temi installati, quindi non posso usare ?preview_theme_id=

1 Mi Piace

Ehi @CamilleRoux,

Puoi anche cambiare il tema predefinito direttamente nel database tramite SQL, se ti trovi a tuo agio con le query dirette al DB.

Spero ti sia utile.

1 Mi Piace

Hai provato Come utilizzare la modalità sicura di Discourse?

2 Mi Piace

Cosa stai facendo :thinking: ?

  • Controlla la modalità sicura: https://forum.humancoders.com/?safe_mode=no_custom%2Cno_plugins%2Conly_official

  • Log https://forum.humancoders.com/logs (privati?)

Prova a eseguire questo via SSH:

cd /var/discourse
git pull
./launcher rebuild app
3 Mi Piace

La modalità sicura non funziona… stesso errore:

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

Ho già eseguito un rebuild ./launcher rebuild app

Non ho altri temi installati, quindi dovrei installarne uno nuovo tramite CLI o modificare quello esistente. Non so come farlo

AH, quindi il tuo tema predefinito ha dei problemi e non c’è modo di disattivarlo? Se è successo questo, allora è per questo che dovresti sempre inserire quelle personalizzazioni nei componenti del tema (anche se non è il momento migliore per dirtelo!). (Ma non sono completamente sicuro che sia il caso).

E non hai plugin di terze parti?

Immagino che quello che forse dovresti fare sia, nella console di Rails, creare un nuovo tema vuoto e poi impostare quello nuovo come predefinito. Non so, al momento, esattamente come farlo.

3 Mi Piace

Non sono ancora del tutto sicuro che il problema provenga dal tema. Ma se è così, sì, creare un tema vuoto e impostarlo come predefinito potrebbe risolvere il problema. Non so come farlo :frowning:

Nemmeno io. :man_shrugging:

Nemmeno io. Penso di poterlo capire, ma ho un sacco di lavoro a pagamento che sto cercando di non fare nel weekend.

Ciao @CamilleRoux,

Ho appena controllato il tuo sito impostando la stringa UA nella console per sviluppatori su Google Bot. Questo mostrerà solo il sito Rails senza l’Ember SPA.

Come puoi vedere, il tuo sito è “OK” dal punto di vista di Rails, il che indica che il tuo container funziona correttamente e, come hai ipotizzato, c’è un problema di JavaScript nel tuo tema (componente).

Vedi allegato:

@CamilleRoux

Puoi accedere a un prompt psql (o usare la console Rails se preferisci) ed eseguire queste query:

Verifichiamo quanti temi sono installati:

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

Verifichiamo qual è l’ID del tema predefinito (attualmente):

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

Inoltre, puoi eseguire anche questa query?

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
4 Mi Piace

OBTW,

@CamilleRoux

Ho appena testato questo per te.

Dopo aver eseguito le query nel mio post precedente per elencare tutti i tuoi temi (e averne un registro dello stato corrente), supponendo che tu possa accedere al tuo database ed eseguire questa query, sia tramite Rails che direttamente da psql, puoi provare quanto segue:

Query per disabilitare tutti i componenti del tema

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

La query sopra disattiverà tutti i componenti dei tuoi temi.

In seguito potrai vedere “cosa succede” quando provi ad accedere al tuo sito rotto.

Se fossi nella tua situazione attuale, basandomi sul controllo del tuo sito come bot UA, disattiverei tutti i componenti del tema.

In realtà, li disattiverei uno alla volta, iniziando da quelli relativi ai link di navigazione (vedi errore JS sotto come punto di partenza); perché sono a mio agio ed esperto nell’eseguire query SQL dirette sul database. Hai solide competenze SQL?

Se non ti senti a tuo agio con questo, puoi scrivermi e darmi l’accesso; ti aiuterò a superare questa “situazione non proprio ottimale” in cui ti trovi. Sono abbastanza sicuro, in base alle informazioni di cui dispongo al momento, di poterti aiutare a rimettere tutto in funzione :slight_smile:

Vedi anche il tuo errore JS:
Discourse.ExternalNavItem=Discourse.NavItem.extend({href:function(){return this.get('href');}.property('href')});I18n.translations.fr.js.filters.formations={title:"Formazioni",help:"Formazioni per sviluppatori·trici"};Discourse.NavItem.reopenClass({buildList:function(category,args){var list=this._super(category,args);list.push(Discourse.ExternalNavItem.create({href:'https://www.humancoders.com/',name:'formazioni'}));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});});});});
6 Mi Piace

Ok, grazie a tutti per il vostro aiuto.
È una vecchia installazione e non avevo installato altri temi o componenti. Quindi non potevate cambiare il mio tema o disabilitare tutti i componenti.
Ho quindi ripristinato un vecchio backup, aggiornato il mio tema e poi aggiornato Discourse. È meglio, ma ho ancora un errore (su due che c’erano prima).

Ecco l’errore:

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

Ecco il contenuto di questo file:

Discourse.start();

Ho una versione obsoleta del tema predefinito? (il tema corrente è stato creato nel 2016 aggiungendo semplicemente alcuni CSS e JS al tema predefinito)

PS: Il sito è di nuovo operativo perché sto usando il backup senza aver aggiornato Discourse.

4 Mi Piace

Allora penso che quello che farei è creare un nuovo tema generico e impostarlo come predefinito, poi eseguire l’aggiornamento e correggere il tuo tema.

4 Mi Piace

Piccolo aggiornamento: ho riscontrato il bug su alcune versioni di Discourse, ma non su tutte.
Funziona correttamente su stable e tests-passed, ma non su beta. Quindi ammetto che il bug è già stato risolto, ma non è stato ancora committato su beta.

2 Mi Piace

Ma il problema riguarda la personalizzazione del tuo tema o quella predefinita?

Con l’attuale beta, ho lo stesso bug indipendentemente dal tema.