ho installato un’istanza di Discourse ieri e oggi mostra una pagina scura. Nella console vedo:
Refused to load the script 'https://ajax.cloudflare.com/cdn-cgi/scripts/95c75768/cloudflare-static/rocket-loader.min.js' because it violates the following Content Security Policy directive: "script-src 'unsafe-eval' 'report-sample' [url]/logs/ [url]/sidekiq/ [url]/mini-profiler-resources/ [url]/assets/ [url]/brotli_asset/ [url]/extra-locales/ [url]/highlight-js/ [url]/javascripts/ [url]/plugins/ [url]/theme-javascripts/ [url]/svg-sprite/". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
A bad HTTP response code (404) was received when fetching the script.
Disabilita Cloudflare per il tuo sito dal pannello di controllo di Cloudflare. In particolare, la funzione Rocket Loader è assolutamente incompatibile con Discourse.
Potresti gentilmente spiegare perché questo è “assolutamente” incompatibile? Lo utilizzo su altre applicazioni Rails fortemente personalizzate e ottimizzate con successo (solitamente dopo un po’ di debug). Sono curioso di sapere perché Discourse non sia stato modificato per renderlo funzionante con l’intera suite di servizi CloudFlare, dato che è così ampiamente utilizzato.
In realtà non c’è alcun vantaggio o incentivo qui.
Sembra che tu stia operando con l’assunzione che Cloudflare possa ottimizzare il codice di Discourse meglio degli stessi sviluppatori di CDCK. Su cosa ti basi?
Cloudflare va bene come cache, ma tutte le funzionalità relative alle prestazioni devono essere disattivate; altrimenti la tua installazione non è supportata.
Da alcune discussioni che ho visto qui, sembra esserci un problema con la First Meaningful Paint che non appare abbastanza rapidamente; vari test hanno restituito risultati del genere. Speravo che Rocket Loader potesse ridurlo ulteriormente mentre si lavora attivamente in quest’area per risolverlo.
No, questo peggiorerebbe la situazione. Discourse è un’applicazione JavaScript, quindi il primo caricamento richiederà un po’ più di tempo, poiché l’app deve essere scaricata nell’ambiente di esecuzione JavaScript del browser.
Tecnicamente dovrebbe funzionare, ma se non lo fa, è perché Cloudflare ha scritto codice scadente. Se desideri approfondire la questione, dovresti contattarli via email. Non possiamo controllare il codice di Cloudflare perché… non siamo Cloudflare.