Peço desculpas se eu diagnosticar isso incorretamente, mas recentemente enfrentei alguns problemas após uma atualização em uma configuração de subpasta que funcionava antes, então acho que pode ter havido um regression em algumas frentes recentemente? Em particular, estou hospedando o Discourse de forma independente usando a configuração de subpasta descrita aqui, que estava funcionando perfeitamente (AFAICT) até recentemente.
Atualmente, ao fazer login usando SSO ou ao alternar para/desdo modo anônimo (e talvez em outras situações que ainda não encontrei), sou redirecionado para https://my_machine/discourse_path_stuff, em vez de ser redirecionado para https://my_machine/forum/discourse_path_stuff. Também ocorre que, quando acesso https://my_machine/forum (o endpoint correto), minha barra de endereços é reescrita para mostrar https://my_machine (com a subpasta removida), embora a maioria dos links pareça resolver para os locais corretos.
Infelizmente, não me lembro em qual commit eu estava quando as coisas estavam funcionando, mas tenho certeza de que estava sob o guarda-chuva “2.4.0.beta10” e provavelmente dentro dos últimos ~10 dias. Atualmente estou rodando na versão bd49d4af1a.
Peço desculpas se estou apenas fazendo algo estúpido e estou feliz em ajudar a rastrear o problema se houver sugestões sobre onde devo procurar.
Estamos usando o protocolo Discourse SSO, que definitivamente funcionava sem problemas antes. O handshake ainda parece ocorrer corretamente, apenas redirecionando para o lugar errado no final. A chave "return_sso_url" no payload do SSO está retornando corretamente ao nosso endpoint de SSO (com /forum).
Também tentei uma reconstrução, mas isso não parece ter resolvido o problema.
Infelizmente, isso pode ser difícil de depurar, pois não me sinto confortável em dar acesso a pessoas de fora, já que essa instância existe para uma aula, e não me sinto à vontade em compartilhar dados de estudantes com partes externas (mesmo que eu confie em você pessoalmente!). Mas, se ajudar, posso tentar replicar essa configuração em outro servidor ao qual eu possa conceder acesso a você…
Vejo também que o link para entrar/sair do modo anônimo está usando window.location.reload() para recarregar a página após enviar uma solicitação a um endpoint para alternar para o modo anônimo. Assim, esse recarregamento certamente verá a URL reescrita (que não contém mais /forum), o que causaria isso (não tenho certeza se é uma história semelhante para os problemas de SSO).
Vou dar uma olhada nos conjuntos de alterações recentes para ver se a coisa que (acho que?) está reescrevendo window.location é uma adição recente.
Além disso, Discourse.getURL('/login') ainda me dá o resultado correto (com /forum).
Os caminhos são redefinidos sem o prefixo de subpasta na barra de endereços do navegador.
Exemplo:
Acesso example.com/forum → após o fórum carregar, a barra de endereços mostra example.com
Então, clico em “Mais recentes” → navego para a página mais recente e a barra de endereços mostra example.com/forum/latest
Atualizo a página no navegador, o site recarrega e a barra de endereços mostra example.com/latest
Quando atualizo novamente estando em example.com/latest, ocorre um erro 404 (porque meu nginx roteia apenas /forum para o Discourse).
A prévia do link no canto inferior esquerdo do navegador aparece como example.com/latest, example.com/new, etc. Atualizar um tópico também remove /forum da URL, mas depois ela volta a mudar, retornando para /forum/t/[…].
Eu estava na versão 2.4.0.beta2 anteriormente e não me lembro desse problema.
Ótimo, obrigado! Feliz em saber que não estou louco.
No entanto, ao examinar os commits recentes, não consegui identificar um ponto óbvio onde essa reescrita está ocorrendo. Seria possível indicar onde no código isso acontece/acontecia? (Estou tentando me familiarizar com a base de código).
Seria! Só não sou a pessoa certa. Sou apenas “aquele cara” da equipe que, por acaso, tem uma instalação local em uma subpasta. Mas não sou engenheiro. O David deve conseguir te orientar na direção certa quando começar a trabalhar no problema mais tarde nesta semana.