요약: 댓글을 임베드할 때 discourseUrl 필드를 설정하면, Discourse가 페이지를 파싱할 때 해당 값을 읽어드리나요, 아니면 페이지를 파싱하기 위한 요청의 일부로만 처리하나요?
안녕하세요!
저는 HappyCoding.io의 포스트에 댓글을 임베드하기 위해 Discourse를 포럼으로 사용하고 있습니다.
- 임베드된 댓글이 있는 예시 페이지: Isometric Cubes - Happy Coding
- 해당 Discourse 포스트: https://forum.happycoding.io/t/isometric-cubes/738
지난 몇 주 동안 메인 사이트의 일부 페이지를 /examples 디렉터리에서 /tutorials 디렉터리로 이동시켰습니다. 기존 링크가 계속 작동하도록 메인 페이지에 리다이렉트를 설정했으며, 기존 페이지에 새로운 임베드된 Discourse 포스트가 대량으로 생성되는 것을 방지하기 위해 기존 페이지의 임베드 코드에는 discourseEmbedUrl로 기존 URL을 사용하도록 설정해 두었습니다.
대부분은 잘 작동했지만, 몇 주가 지난 지금 갑자기 Discourse에서 랜덤하게 새로운 포스트들이 생성되고 있습니다. 이 포스트들은 제 페이지의 새 URL에서 생성된 것으로 보입니다. 즉, https://happycoding.io/tutorials/p5js/creating-classes/isometric-cubes에 기존 Discourse 포스트가 존재하고, 이 포스트는 기존 URL https://happycoding.io/examples/p5js/creating-classes/isometric-cubes을 사용함에도 불구하고, 새 URL https://happycoding.io/tutorials/p5js/creating-classes/isometric-cubes만 사용하는 새로운 포스트가 생성되고 있는 것입니다.
이 현상은 저를 제외한 다른 사람이 discourseEmbedUrl로 기존 URL을 전달하지 않는 제 사이트의 로컬 버전을 실행하고 있기 때문이라고 생각합니다. 이 커밋과 이 커밋 사이에 제 코드가 잘못된 동작을 하던 몇 시간의 시간이 있었기 때문에, 이것이 악의적인 행위인지 확신할 수 없습니다. 누군가가 정확히 잘못된 버전의 코드를 실행하고 있다는 것은 기이하게 느껴지지만, 이러한 Discourse 포스트가 생성되는 원인으로 제가 떠올릴 수 있는 유일한 가능성입니다.
배경 설명이 길어 죄송합니다. 제 질문은 다음과 같습니다:
- 첫째, 지금까지의 설명이 맞나요? Discourse 임베드 작동 방식을 이해하고 있다고 생각하지만, 놓치고 있는 부분이 있을 수도 있습니다.
- Embed Discourse comments on another website via Javascript 에 설명된 대로
discourseUrl을 설정하면, Discourse는 해당 URL을 요청의 일부로만 인식하나요, 아니면 페이지를 파싱할 때 페이지에서 직접 읽어드리나요? (제 사이트에서 설정해도 도움이 되지 않을 것 같아 질문합니다. 요청이 다른 사람으로부터 오고 있기 때문입니다.) - 다른 사용자가 제 Discourse 인스턴스에 요청을 보내 잘못된 URL에 대한 포스트가 생성되는 것을 방지할 다른 방법이 있을까요? 이미 임베드된 포스트를 비공개(unlisted)로 설정해 두었는데, 이는 도움이 되지만 웹사이트에 새 페이지를 추가할 때마다 Discourse 포스트를 승인해야 하는 번거로움을 피하고 싶습니다.
계획보다 글이 길어졌네요. 도움을 주실 수 있는 모든 분들께 감사드립니다!