vielen Dank für die Bereitstellung eines so fantastischen Produkts! Meine Community und ich nutzen es seit Jahren gerne. Kürzlich sind wir auf ein Problem gestoßen und würden uns sehr über jede Hilfe freuen.
Nach dem Upgrade von Discourse 3.3.0 auf 3.4.0 sehen neue Benutzer eine leere Seite (nur Header und Footer), wenn sie auf den E-Mail-Verifizierungslink klicken, um zur Seite „activate-account“ zu gelangen.
Die Richtlinie wurde angepasst und der Cache gelöscht, aber das Problem wurde nicht behoben.
Versuch, CSP über das Discourse Admin Panel zu ändern: ‘self’, ‘unsafe-eval’ hinzugefügt und SHA256-Hashing versucht. Wir haben uns auch auf diesen Artikel bezogen, aber keine Änderung festgestellt.
Verschiedene Eingaben (z. B. ‘self’, ‘unsafe-eval’) ausprobiert und die Richtlinie sogar in den Modus „nur melden“ versetzt. Immer noch keine Auswirkung.
App neu erstellen: Discourse neu erstellt und danach den Cache geleert, aber das Problem besteht weiterhin.
Interessanterweise betrifft dieses Problem nicht jeden neuen Benutzer. Wir haben festgestellt, dass etwa 90 % unserer neuen Benutzer von diesem Problem betroffen sind.
Jeder Vorschlag oder jede Lösung wäre sehr willkommen! Vielen Dank!
Der Endpunkt /cdn-cgi/speculation wird zu Domains hinzugefügt, die auf Cloudflare registriert sind, wenn die Funktion „Speed Brain“ aktiviert ist. Speed Brain soll die Leistung einer Website verbessern, indem es Cloudflare ermöglicht, Inhalte vorab abzurufen, wenn ein Benutzer mit der Maus über einen Link fährt. Ich bin mir nicht sicher, ob dies mit Discourse kompatibel ist.
Ich sehe, dass der Header Speculation-Rules mit der Antwort zurückgegeben wird, wenn ich https://community.lezismore.org/login besuche. Das deutet darauf hin, dass die Funktion Speed Brain aktiviert ist. Aus den Cloudflare-Dokumenten geht hervor, dass sie standardmäßig aktiviert ist.
Können Sie versuchen, Speed Brain im Tab „Speed“ Ihres Cloudflare-Dashboards zu deaktivieren? Anweisungen dazu finden Sie hier: Speed Brain · Cloudflare Speed docs.
Im Abschnitt „Caveats“ der von mir verlinkten Dokumentation heißt es:
Speed Brain funktioniert nicht mit restriktiven Content Security Policy -Konfigurationen, die die Attribute strict-dynamic oder nonce-{hash} verwenden.
Wenn Speed Brain mit Discourse kompatibel ist, müssen wir herausfinden, wie wir es zu den Content Security-Regeln hinzufügen können.
Ich habe die Einstellung “Speed Brain” in Cloudflare bereits deaktiviert und den Cache wie vorgeschlagen geleert, aber leider besteht das Problem weiterhin.
Können Sie sich auf der Website anmelden? Wenn ja, sehen Sie Fehlermeldungen auf der Seite mit den Fehlerprotokollen (https://community.lezismore.org/logs)?
Es gibt einige andere Fehler, bei denen ich mir nicht sicher bin, ob sie relevant sind, aber ich gebe sie der Vollständigkeit halber an, nur für den Fall.
Nachricht
Job-Ausnahme: PG::SyntaxError: FEHLER: zero-length delimited identifier at or near ""
ZEILE 1: ...1506385, "success" = TRUE WHERE "scheduler_stats"." IS NULL
^
Backtrace
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:69:in `exec_params'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:768:in `block (2 levels) in exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/share_lock.rb:187:in `yield_shares'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/dependencies/interlock.rb:41:in `permit_concurrent_loads'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:767:in `block in exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract_adapter.rb:752:in `block in log'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract_adapter.rb:743:in `log'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:766:in `exec_no_cache'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql_adapter.rb:745:in `execute_and_clear'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:67:in `exec_delete'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:175:in `update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/query_cache.rb:22:in `update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:513:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:1060:in `_update_row'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/locking/optimistic.rb:93:in `_update_row'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:1082:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/attribute_methods/dirty.rb:216:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:463:in `block in _update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:99:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:929:in `_run_update_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:463:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/timestamp.rb:121:in `_update_record'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:1069:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:455:in `block in create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:99:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/callbacks.rb:929:in `_run_save_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/callbacks.rb:455:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/timestamp.rb:126:in `create_or_update'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:648:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/validations.rb:53:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:302:in `block in save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:314:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:302:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/suppressor.rb:54:in `save!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:782:in `block in update!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:354:in `block in with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.8/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/transactions.rb:350:in `with_transaction_returning_status'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.8/lib/active_record/persistence.rb:782:in `update!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:134:in `process_queue'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:70:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_scheduler-0.16.0/lib/mini_scheduler/manager.rb:59:in `block (2 levels) in ensure_worker_threads'
Basierend auf den von Ihnen bereitgestellten Details ist mir nicht klar, wo im Discourse-Code der Fehler ausgelöst wird. Gibt es Details auf den Registerkarten „Info“ oder „Env“ auf der Fehlerseite? Es gibt auch eine Schaltfläche „Teilen“ unten rechts auf der Seite, die alle Fehlerdetails anzeigt.
Ich bin mir nicht sicher, ob der Fehler mit dem Problem zusammenhängt, aber es scheint, dass auf Ihrer Website etwas mit Hintergrundaufträgen (Sidekiq) schiefgeht.
Es könnten auch nützliche Informationen auf der Seite „/sidekiq“ Ihrer Website vorhanden sein. Als Administrator können Sie sie unter https://community.lezismore.org/sidekiq einsehen.
Es scheint, wir hatten das gleiche Problem! Nachdem ich den Link zur Aktivierungsseite in der E-Mail-Vorlage von:
%{base_url}/user/activate-account/%{email_token}
zu:
%{base_url}/u/activate-account/%{email_token}
geändert habe, funktionierte alles wieder einwandfrei. Das Problem trat wahrscheinlich auf, weil die E-Mail-Vorlage aufgrund meiner vorherigen Anpassungen nicht automatisch aktualisiert wurde, was verhinderte, dass Änderungen nach dem Neuerstellen der App angewendet wurden.
Ein großes Dankeschön an @simon für die unglaubliche Geduld bei der Fehlersuche und an @th21 für die Informationen!
Ich werde die Leistung der Anwendung weiterhin überwachen und Updates teilen, falls Probleme auftreten. Nochmals vielen Dank, Leute!