ich habe gestern eine Discourse-Instanz installiert, und heute wird eine dunkle Seite angezeigt. In der Konsole sehe ich:
Das Laden des Skripts 'https://ajax.cloudflare.com/cdn-cgi/scripts/95c75768/cloudflare-static/rocket-loader.min.js' wurde verweigert, da es gegen die folgende Content-Security-Policy-Anweisung verstößt: "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/". Beachten Sie, dass 'script-src-elem' nicht explizit festgelegt wurde, sodass 'script-src' als Fallback verwendet wird.
Beim Abrufen des Skripts wurde ein schlechter HTTP-Antwortcode (404) empfangen.
Deaktivieren Sie Cloudflare für Ihre Website im Cloudflare-Steuerungsbereich. Die Rocket Loader-Funktion ist insbesondere absolut inkompatibel mit Discourse.
Könntest du bitte genauer erklären, warum das „absolut" inkompatibel ist? Ich verwende dies erfolgreich in anderen Rails-Anwendungen, die stark angepasst und optimiert sind (meist nach etwas Debugging). Mich interessiert, warum Discourse nicht überarbeitet wurde, um es mit der gesamten Cloudflare-Suite von Diensten funktionsfähig zu machen, da diese so stark genutzt wird.
Davon geht hier eigentlich kein Vorteil oder Anreiz aus.
Du scheinst davon auszugehen, dass Cloudflare den Discourse-Code besser optimieren kann als die eigenen Entwickler von CDCK. Worauf gründest du diese Annahme?
Cloudflare ist in Ordnung als Cache, aber alle Leistungsmerkmale müssen deaktiviert werden, sonst ist deine Installation vollständig nicht unterstützt.
Aus einigen Diskussionen, die ich hier gesehen habe, scheint es Probleme damit zu geben, dass der sinnvolle erste Paint in verschiedenen Tests nicht schnell genug erscheint. Ich hatte gehofft, dass Rocket Loader dies eventuell weiter reduzieren könnte, während in diesem Bereich tatsächlich gearbeitet wird, um das Problem zu lösen.
Nein, das wird es nur verschlimmern. Discourse ist eine JavaScript-Anwendung, sodass der erste Ladevorgang etwas länger dauert, da die App in die JavaScript-Laufzeitumgebung des Browsers heruntergeladen werden muss.
Technisch gesehen sollte es funktionieren, aber wenn es nicht klappt, liegt das daran, dass Cloudflare schlechten Code geschrieben hat. Wenn Sie dies weiterverfolgen möchten, sollten Sie sich an sie wenden. Wir können den Code von Cloudflare nicht kontrollieren, weil wir .. nun ja, nicht Cloudflare sind.