Innanzitutto, si tratta di un caso limite molto specifico della mia configurazione, relativa alla sottocartella /f.
Il link di Discourse per il menu hamburger punta a /faq, senza la sottocartella, perché /faq inizia con /f.
Considerando questa citazione:
Penso che potremmo modificare
const found = url.startsWith(baseUri);
in qualcosa del genere
const found = url === baseUri || url.startsWith(`${baseUri}/`);
In modo che corrisponda a /f, /f/, /f/faq, ma non a /faq, aggiungendo correttamente il baseUri a quest’ultimo.
Comunque, anche la rotta stessa non funziona: /f/faq restituisce un errore 404, quindi credo che ci sia una logica simile a livello di router. In precedenza ho notato che anche /f/following non funzionava (cc @merefield).
Infine, ho modificato l’impostazione del sito faq url in /f/guidelines come soluzione temporanea, il che ha corretto il link e l’errore 404, ma ha generato una piccola stranezza: sia la voce “Guidelines” che quella “FAQ” appaiono nella barra di navigazione, entrambe puntano a quanto impostato in faq url (puoi verificare sulla pagina effettiva):
Scusa per questo argomento che tira in ballo tutto, con tre problemi diversi, ma credo che siano così correlati che sarebbe difficile separarli correttamente.
Ho inviato una PR per risolvere il problema di get-url:
Per quanto riguarda l’errore 404 su /f/faq e /f/favicon/proxied, quando eseguo CURL su queste route all’interno del container, bypassando Nginx, tutto funziona. Sono riuscito a risolvere il problema modificando la direttiva location descritta in Serve Discourse from a subfolder (path prefix) instead of a subdomain, passando da location /subfolder a location /subfolder/.
La barra di navigazione che mostra sia le Linee Guida che le FAQ è il comportamento previsto; è improbabile che l’utente sovrascriva l’URL delle FAQ con lo stesso URL.