Seite Benutzereinstellungen nicht aktualisiert nach Hinzufügen oder Entfernen einer Theme-Komponente: Cache-Problem mit CDN?

Hallo,

wenn ich Theme-Komponenten zum aktuellen Standard-Theme hinzufüge oder entferne, werden die Benutzerpräferenzen nicht entsprechend aktualisiert (eine meiner Komponenten fügt ein Eingabefeld für Benutzerpräferenzen hinzu).

Um das Eingabefeld hinzuzufügen (oder zu entfernen), muss ich meinen CDN-Cache leeren.
Eine “falsch” zwischengespeicherte Seite für Benutzerpräferenzen führt zudem zu 403-Fehlern, wenn der Benutzer einige Einstellungen ändern möchte.

Dieses Problem betrifft nicht mein Admin-Konto, sondern ein reguläres Benutzerkonto, das ich zu Testzwecken erstellt habe.

Haben Sie eine Idee, wie ich das beheben kann?

Hier sind meine CDN-Einstellungen:

Meine Discourse-Installation ist eine Standardinstallation.

Bitte füge hier deine app.yml-Konfiguration hinzu. Es sieht so aus, als hättest du deine gesamte Domain aufgrund einer Fehlkonfiguration hinter ein CDN gestellt, sodass diese Fehler zu erwarten sind.

Hallo, danke für deine Antwort.
Hier ist meine app.yml:

## Dies ist die All-in-One, eigenständige Discourse Docker-Container-Vorlage
##
## Nach Änderungen an dieser Datei MUSST du neu aufbauen
## /var/discourse/launcher rebuild app
##
## SEI *SEHR* VORSICHTIG BEI DER BEARBEITUNG!
## YAML-DATEIEN SIND EXTREM EXTREM EMPFINDLICH GEGENÜBER FEHLERN BEI LEERZEICHEN ODER AUSRICHTUNG!
## Besuche http://www.yamllint.com/, um diese Datei bei Bedarf zu validieren

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Kommentiere diese beiden Zeilen aus, wenn du Lets Encrypt (https) hinzufügen möchtest
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## Welche TCP/IP-Ports soll dieser Container freigeben?
## Wenn du möchtest, dass Discourse einen Port mit einem anderen Webserver wie Apache oder nginx teilt,
## siehe https://meta.discourse.org/t/17247 für Details
expose:
  - "80:80"   # http
  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Setze db_shared_buffers auf maximal 25 % des gesamten Arbeitsspeichers.
  ## Wird automatisch vom Bootstrap basierend auf dem erkannten RAM gesetzt, oder du kannst es überschreiben
  db_shared_buffers: "2048MB"

  ## Kann die Sortierleistung verbessern, erhöht aber den Speicherverbrauch pro Verbindung
  #db_work_mem: "40MB"

  ## Welche Git-Revision soll dieser Container verwenden? (Standard: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Wie viele gleichzeitige Webanfragen werden unterstützt? Hängt vom Arbeitsspeicher und den CPU-Kernen ab.
  ## Wird automatisch vom Bootstrap basierend auf den erkannten CPUs gesetzt, oder du kannst es überschreiben
  UNICORN_WORKERS: 8

  ## TODO: Der Domainname, auf den diese Discourse-Instanz reagieren wird
  ## Erforderlich. Discourse funktioniert nicht mit einer reinen IP-Nummer.
  DISCOURSE_HOSTNAME: unicyclist.com

  ## Kommentiere aus, wenn du möchtest, dass der Container mit demselben
  ## Hostnamen (-h-Option) wie oben angegeben gestartet wird (Standard "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Liste der durch Komma getrennten E-Mails, die bei der ersten Anmeldung zu Administratoren und Entwicklern werden
  ## Beispiel 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'canapin@gmail.com'

  ## TODO: Der SMTP-Mailserver, der zur Validierung neuer Konten und zum Senden von Benachrichtigungen verwendet wird
  ## SMTP-Adresse, Benutzername und Passwort sind erforderlich
  ## WARNUNG: Das Zeichen '#' im SMTP-Passwort kann Probleme verursachen!
  DISCOURSE_SMTP_ADDRESS: smtp.gmail.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: no-reply@email.unicyclist.com
  DISCOURSE_SMTP_PASSWORD: xxx
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, Standard true)

  ## Wenn du die Lets Encrypt-Vorlage hinzugefügt hast, kommentiere unten aus, um ein kostenloses SSL-Zertifikat zu erhalten
  LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## Die http- oder https-CDN-Adresse für diese Discourse-Instanz (konfiguriert zum Abrufen)
  ## siehe https://meta.discourse.org/t/14857 für Details
  DISCOURSE_CDN_URL: https://f5i4i8k5.stackpathcdn.com

## Der Docker-Container ist zustandslos; alle Daten werden in /shared gespeichert
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins gehen hier
## siehe https://meta.discourse.org/t/19157 für Details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/paviliondev/discourse-locations
          - git clone https://github.com/davidtaylorhq/discourse-whos-online

## Beliebige benutzerdefinierte Befehle, die nach dem Erstellen ausgeführt werden sollen
run:
  - exec: echo "Beginn der benutzerdefinierten Befehle"
  ## Wenn du die 'From'-E-Mail-Adresse für deine erste Registrierung festlegen möchtest, kommentiere aus und ändere:
  ## Nachdem du die erste Anmelde-E-Mail erhalten hast, kommentiere die Zeile erneut aus. Sie muss nur einmal ausgeführt werden.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Ende der benutzerdefinierten Befehle"

Ihre DNS-Einstellungen sind falsch.

unicyclist.com sollte ein A-Eintrag mit der IP-Adresse Ihres VPS sein, zeigt jedoch auf eine StackPath-IP.