잘못 진단한 것이라면 죄송합니다. 하지만 최근 서브폴더 설정으로 잘 작동하던 환경에서 업그레이드를 진행한 후 몇 가지 문제가 발생했습니다. 그래서 최근 몇 달 사이에 일부 기능에서 회귀(regression)가 있었을 가능성이 있다고 생각합니다. 특히 여기에 설명된 서브폴더 설정을 사용하여 Discourse를 셀프호스팅하고 있는데, 최근까지 잘 작동하고 있었습니다(제가 아는 한).
현재 SSO로 로그인하거나 익명 모드에서 전환할 때(아직 발견하지 못한 다른 상황에서도 마찬가지일 수 있습니다) https://my_machine/forum/discourse_path_stuff로 리다이렉트되는 대신 https://my_machine/discourse_path_stuff로 리다이렉트됩니다. 또한 올바른 엔드포인트인 https://my_machine/forum으로 이동하면 주소창에서 서브폴더가 제거되어 https://my_machine으로 바뀌지만, 대부분의 링크는 올바른 위치로 잘 해석됩니다.
불행히도 문제가 없었을 때 실행 중이던 커밋을 기억하지 못하지만, “2.4.0.beta10” 버전 범위 내였을 것으로 확신합니다. 아마도 지난 약 10일 사이였을 것입니다. 현재는 bd49d4af1a 커밋을 실행 중입니다.
아무런 실수를 하고 있는 것이라면 죄송합니다. 문제 해결을 돕고 싶으니, 어디를 살펴봐야 할지에 대한 제안이 있다면 기꺼이 도움을 드리겠습니다.
저희는 Discourse SSO 프로토콜을 사용 중이며, 이전에는 정상적으로 작동했습니다. 핸드셰이크는 여전히 정상적으로 진행되는 것 같지만, 마지막에 잘못된 위치로 리다이렉트되고 있습니다. SSO 페이로드의 "return_sso_url" 키는 /forum 경로와 함께 SSO 엔드포인트로 올바르게 반환되고 있습니다.
재빌드도 시도해 보았지만 문제가 해결되지 않았습니다.
불행히도 이 인스턴스는 수업용으로 존재하므로 외부인에게 접근 권한을 부여하는 것이 어렵습니다. 학생 데이터를 외부 당사자와 공유하는 것에 대해 편안하지 않기 때문입니다(개인적으로 신뢰한다 해도 마찬가지입니다). 하지만 도움이 된다면, 접근 권한을 부여할 수 있는 다른 서버에서 이 설정을 재현해 보도록 하겠습니다…
또한 익명 모드 진입/탈출 링크가 익명 모드로 전환하기 위해 엔드포인트에 요청을 보낸 후 window.location.reload()를 사용해 페이지를 새로고침하는 것을 확인했습니다. 따라서 해당 새로고침은 재작성된 URL(더 이상 /forum을 포함하지 않는)을 받게 되며, 이로 인해 이 문제가 발생합니다(SSO 문제도 비슷한 상황인지 확실하지는 않습니다).
window.location을 재작성하는 것으로 추정되는 부분이 최근 추가된 것인지 확인해 보려고 최근 변경 사항을 살펴보겠습니다.
그리고 Discourse.getURL('/login')은 여전히 올바른 결과(/forum 포함)를 반환합니다.