Nun, @hellekin war der Meinung, dass dies ein eigenes Thema verdient. Ich bin mir nicht ganz sicher, ob es dafür schon bereit ist, aber hier ist es. Ich werde Anfang nächster Woche einen Blick darauf werfen und versuchen, sicherzustellen, dass es etwas ist, das andere Menschen wirklich nutzen können.
Eine Nginx-Konfiguration hinzufügen, die zur HTML-Datei passt:
location = /TransHack_·Xist·nce… {
default_type text/html;
alias /srv/www/zoethical.org/thx/home.html;
}
Das direkte Aufrufen der Datei funktioniert, aber https://thx.zoethical.org schlägt fehl. Da ich eine Prüfung auf Permalinks bemerkt habe, habe ich versucht, einen Permalink für / hinzuzufügen. Das hat aber auch nicht funktioniert. Könnte dies ein Problem mit dem Cache sein?
Zur Information, hier ist der Inhalt der home.html-Datei:
Edit: Ich vermute, das liegt daran, dass die Instanz eine Anmeldung (SSO) erfordert, und in diesem Fall liegt eine Funktionsstörung vor. Ich könnte bereit sein, weitere Tests durchzuführen, einschließlich einer etwas offeneren Einstellung der Instanz. Auch nach dem Rendern der öffentlichen Seite erhalte ich weiterhin die Meldung „Ups! Diese Seite existiert nicht oder ist privat“, wenn ich die Startseite aufrufe. Hast du eine Idee, warum das so ist?
Ah, die Datei sollte also standardmäßig index.html sein?
Tatsächlich funktioniert es! Die Komponente erwartet also, dass die URL auf eine index-Datei verweist, richtig?
Ich musste lediglich meine home.html in index.html umbenennen und die Nginx-Konfiguration wie folgt anpassen:
# weitere Konfiguration...
root /srv/www/zoethical.org/thx;
index index.html; # <- das ist wichtig
location = /TransHack_·Xist·nce… {
default_type text/html;
alias /srv/www/zoethical.org/thx/index.html; # <- und passt dazu
}
location / {
# Nginx-Trick: zuerst lokale Datei versuchen, dann proxyen...
try_files $uri $uri/ $uri.html @discourse;
}
location @discourse {
# normaler Discourse-Proxy
}
Zusammenfassung…
Wenn du eine statische Seite auf derselben Domain wie die Discourse-Instanz verwendest, stelle sicher, dass dein Webserver die statischen Datei(en) – z. B. zugehöriges CSS – ausliest, bevor er die Anfragen an Discourse weiterleitet. Tadaa!
Tatsächlich bleibt ein Fehler bestehen: Obwohl der Aufruf der URL https://thx.zoethical.org von außen funktioniert, führt ein Klick auf das Logo innerhalb von Discourse nicht dazu, dass die überschriebene Seite wieder geladen wird. Ich habe eine Permalink-Prüfung bemerkt und habe daher mehrere Optionen ausprobiert, die alle gescheitert sind:
Einen Permalink von https://thx.zoethical.org zu /index.html erstellen
Einen Permalink von https://thx.zoethical.org zu /TransHack_·Xist·nce… erstellen
Diese mit einem Permalink von /index.html zu /TransHack_·Xist·nce… kombinieren
Die Weiterleitung zu /TransHack_·Xist·nce… in der Frontend-Konfiguration entfernen
Einen custom_url-Permalink erstellen und auf eine externe URL verweisen lassen
Ich vermute, das Problem liegt daran, dass das Skript beim Klick auf das Logo nicht versucht, die gesamte Anwendung neu zu laden, sondern erwartet, dass ein interner Link mit dem obersten Pfad verknüpft ist.
Ich würde erwarten, dass entweder die homepage_url_override oder ein (z. B. custom_url) Permalink, der auf eine absolute URL zeigt, dazu führt, dass die Seite vollständig neu geladen wird.