Beh, @hellekin ha pensato che questo meritasse un proprio argomento. Non sono sicuro che sia pronto per questo, ma eccolo. Darò un’occhiata alle cose all’inizio della prossima settimana e cercherò di assicurarmi che sembri qualcosa che altre persone possano davvero utilizzare.
aggiungi una configurazione Nginx per abbinare il file HTML:
location = /TransHack_·Xist·nce… {
default_type text/html;
alias /srv/www/zoethical.org/thx/home.html;
}
Chiamare direttamente il file funziona, ma l’accesso a https://thx.zoethical.org fallisce. Avendo notato un controllo sui permalink, ho provato ad aggiungere un permalink per /. Ma non ha funzionato nemmeno in quel caso. Potrebbe essere un problema di cache?
Per tua informazione, ecco il contenuto del file home.html:
Modifica: Penso che possa dipendere dal fatto che l’istanza richiede l’accesso (SSO), e in tal caso c’è un malfunzionamento. Potrei essere disposto a effettuare ulteriori test, incluso rendere l’istanza leggermente più accessibile. Dopo aver reso il sito pubblico, ottengo ancora “Oops! Quella pagina non esiste o è privata” quando provo ad accedere alla home page. Qualche idea sul perché?
Oh, quindi il file dovrebbe essere quello predefinito – di solito index.html?
Funziona davvero! Il componente si aspetta che l’URL sia un file index, giusto?
Ho dovuto semplicemente rinominare il mio home.html in index.html e modificare la configurazione di Nginx così:
# più configurazione...
root /srv/www/zoethical.org/thx;
index index.html; # <--- questo è importante
location = /TransHack_·Xist·nce… {
default_type text/html;
alias /srv/www/zoethical.org/thx/index.html; # <--- e corrisponde
}
location / {
# la magia di nginx per provare il file locale prima di fare il proxy...
try_files $uri $uri/ $uri.html @discourse;
}
location @discourse {
# normale proxy per Discourse
}
Quindi, per riassumere…
Se stai usando una pagina statica sullo stesso sito dell’istanza di Discourse, assicurati che il tuo server Web legga i file statici – ad esempio, i CSS correlati – prima di inoltrare le richieste a Discourse. E voilà!
In realtà rimane un bug: sebbene l’URL https://thx.zoethical.org funzioni dall’esterno, una volta dentro Discourse, cliccando sul logo non si viene reindirizzati alla pagina sovrascritta. Ho notato un controllo sui permalink, quindi ho provato diverse opzioni, che hanno tutte fallito:
creare un permalink da https://thx.zoethical.org a /index.html
creare un permalink da https://thx.zoethical.org a /TransHack_·Xist·nce…
combinare questi con un permalink da /index.html a /TransHack_·Xist·nce…
rimuovere il reindirizzamento a /TransHack_·Xist·nce… nella configurazione del frontend
creare un permalink custom_url e puntarlo a un URL esterno
Immagino che il problema derivi dal fatto che lo script non tenta di ricaricare l’intera applicazione quando si clicca sul logo, ma si aspetta che un link interno sia associato al percorso principale.
Mi aspetterei che, quando sia homepage_url_override sia un permalink (ad esempio custom_url) puntano a un URL assoluto, la pagina venga ricaricata completamente.