Discorso rotto dopo il trasferimento dei server

La nostra istanza Discourse è ospitata su Digital Ocean da molti anni, al punto che stavano sorgendo problemi a causa del fatto che eravamo ancora su Ubuntu 18. Quindi, ho creato un nuovo Droplet con una nuova installazione di Discourse, l’ho avviata, quindi ho scaricato e ripristinato il backup più recente dal vecchio Droplet. Nessun errore durante tutto questo.

Una volta effettuato l’accesso alla nuova istanza, però, appare così:

E la console mi restituisce questo:

Uncaught SyntaxError: unexpected token: private identifier
admin-13326e7ca61effcc233d500e3263c63074c9823b7e1d0c1680b6f68e23565d5a.js:76:99
ℹ️ Discourse v3.3.0.beta2-dev — https://github.com/discourse/discourse/commits/2a2eaf835f — Ember v5.5.0 app.js:213
Uncaught (in promise) Error: There is no route named admin
    handlersFor https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    isActiveForRoute https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    isActiveForState https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    get isActive https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    get class https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    Re https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    a https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    tag https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    track https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    d https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    Ke https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    tag https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    track https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    d https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    Je https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    flush https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    <anonymous> https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    evaluate https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    evaluateSyscall https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    evaluateInner https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    evaluateOuter https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    next https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _execute https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    execute https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    sync https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    render https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _renderRoots https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    Nt https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _renderRoots https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _renderRootsTransaction https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _renderRoot https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _appendDefinition https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    appendOutletView https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    invoke https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    flush https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    flush https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _end https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
    _boundAutorunEnd https://discourse.gomomentum.org/assets/vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9
vendor.ff29780b9fed784cce2d843dcb93a803-608f4f77d8437d715d8d39c739c0c8bbe0fe51c9305e55f1ec7d0bee19f5571f.js:9:384138

Qualsiasi suggerimento su dove iniziare a risolvere questo problema sarebbe molto apprezzato. Grazie!

1 Mi Piace

Puoi provare a visitare il tuo sito in modalità provvisoria per vedere se si carica?

1 Mi Piace

Ho fatto così. Sembra identico e ricevo gli stessi errori.

Oh, inoltre, ho appena provato ad accedere a un account diverso senza permessi di amministratore o moderatore, e funziona bene, per quanto posso dire. Ho accesso a tre diversi tipi di account e questi sono i risultati dei miei esperimenti:

  • account admin → rotto
  • account moderatore (con accesso limitato alla dashboard admin) → rotto
  • account normale → funziona bene

Il problema sembra verificarsi solo se il menu laterale include il link “Admin”, poiché è quello che sarebbe apparso subito sotto l’elemento “Review” nello screenshot sopra. Forse questo aiuta?

Inoltre, se può essere utile, la vecchia istanza da cui ho preso il backup non era sull’ultima versione di Discourse. Penso fosse su qualcosa come la 3.1.2. La nuova istanza, ovviamente, è sull’ultima versione.

Il problema è che c’è un errore di sintassi in uno dei file javascript di amministrazione e ciò porta all’effetto collaterale che il percorso admin non viene registrato.

Nella console, sei in grado di espandere o accedere al file in cui viene generato l’errore di sintassi? Le informazioni sono piuttosto limitate in questo momento per poter dire cosa c’è che non va.

Certo, anche se è solo una riga contigua di Javascript minificato. Ho provato a incollare tutto qui, ma supera il conteggio di caratteri consentito. Ho usato uno strumento online per “de-minificare” e ho identificato il blocco di codice che genera l’errore.

(P.prototype.handlersFor = function (e) {
    var t = this.names[e];
    if (!t) throw new Error("There is no route named " + e);
    for (var r = new Array(t.handlers.length), n = 0; n < t.handlers.length; n++) {
        var i = t.handlers[n];
        r[n] = i;
    }
    return r;
}),

Questo aiuterà, o devo trovare un modo per pubblicare l’intero file?

Stai usando Cloudflare con la nuvola arancione? Se sì, disattivala.

2 Mi Piace

Ho un problema simile che sembra essere iniziato oggi o ieri. Le mie rotte di amministrazione non funzionano e un menu è rotto.

Uncaught (in promise) Error: There is no route named admin

Ho trovato questo argomento cercando per vedere se qualcun altro stava riscontrando un problema con Cloudflare.

Se cancello la cache di Cloudflare o attivo la modalità di sviluppo, il problema scompare, ma non appena la cache ricomincia a funzionare, il problema ritorna.

Modifica: non sono sicuro se questo sia correlato, ma questi sono alcuni degli errori nella console quando si accede come amministratore.

Ecco la riga di codice:

class d extends t.default{static#e=dt7948.g(this.prototype,\"currentUser\",[a.service])#t=void dt7948.i(this,\"currentUser\")

Il mio menu si interrompe qui:

L’errore “no route named admin” si verifica quando apro quel menu. Potrebbe interrompersi dove si troverebbe il link “admin”.

Dovresti disabilitare tutte le regole in Cloudflare, incluso Rocket Launcher e qualsiasi WAF.

Se mantieni pulita la configurazione di Cloudflare, non causa problemi con Discourse.

Rocket Loader è disattivato su questo sito. Non credo siano state apportate modifiche recenti alle impostazioni di Cloudflare. (Ho appena controllato i log di controllo.)

@Ryan_Hyer Sto guardando di nuovo il tuo screenshot. Si interrompe proprio dove apparirebbe la voce del menu di amministrazione? È lo stesso punto in cui sta succedendo sul mio sito.

Se hai impostato cose come WAF, anche Cloudflare potrebbe apportare modifiche al suo comportamento interno che potrebbero influire sul tuo sito.

Assicurati anche che la funzione “auto minify” di Cloudflare sia disabilitata e che tu abbia svuotato la cache.

Hanno deprecato la funzione perché non funziona per le moderne funzionalità JS (che Discourse sta ora utilizzando)

1 Mi Piace

Abbiamo annullato la modifica a causa dei problemi con Cloudflare e Safari 15.

Quindi @Ryan_Hyer se aggiorni di nuovo Discourse, le cose dovrebbero tornare alla normalità.

(ma comunque, consiglio vivamente di disabilitare tutte le funzionalità di “ottimizzazione” JS di Cloudflare come Rocket Loader e auto-minify)

3 Mi Piace

Grazie! Git pull dice che sono già aggiornato, quindi la modifica non deve essere ancora disponibile?

Credo che l’unica cosa per cui stiamo usando Cloudflare sia il DNS e la protezione DDOS, nient’altro. Ma sì, avevamo la nuvola arancione attiva. L’ho appena disattivata e il mio sito sembra funzionare, fantastico! Grazie ragazzi!

2 Mi Piace

Questa nuvola arancione senza alcuna modifica rispetto alle impostazioni predefinite significa essenzialmente “rompi il mio sito”.

Abbiamo una guida su cosa configurare se la stai utilizzando.

1 Mi Piace

Grazie, era quello. Ho disabilitato l’auto-minifiy, svuotato la cache, fatto un hard-refresh e le cose hanno ricominciato a funzionare.

3 Mi Piace

Questo argomento è stato chiuso automaticamente 30 giorni dopo l’ultima risposta. Non sono più consentite nuove risposte.