XYZ 페이지에 있을 때 /t/XYZ#anchor가 작동하지 않음

안녕하세요! 게시글이 짧은 링크 + 앵커(/t/id#anchor)를 사용하여 자기 자신을 참조할 때, 해당 페이지에서 링크를 클릭하면 앵커로 이동하는 대신 페이지 상단으로 리디렉션되는 문제가 있습니다.

시연을 통해 설명하는 것이 더 쉽습니다:

Header 1

  1. #header-1 이 스레드에 탭으로 있을 때 작동합니다
  2. https://meta.discourse.org/t/t-xyz-anchor-doesnt-work-when-on-the-page-xyz/225101#header-1-1 이 스레드에 탭으로 있고 인용되었을 때 작동합니다
  3. https://meta.discourse.org/t/a/225101#header-1-1 이 스레드에 탭으로 있고 인용되었을 때 작동합니다
  4. https://meta.discourse.org/t/225101#header-1-1 이 스레드에 탭으로 있지 않을 때 작동합니다
  5. /t/t-xyz-anchor-doesnt-work-when-on-the-page-xyz/225101#header-1-1 이 스레드에 탭으로 있고 인용되었을 때 작동합니다
  6. /t/a/225101#header-1-1 이 스레드에 탭으로 있고 인용되었을 때 작동합니다
  7. /t/225101#header-1-1 이 스레드에 탭으로 있지 않을 때 작동합니다

또 다른 두 가지 문제도 발견했습니다. 첫 번째 링크를 제외한 모든 링크는 페이지를 다시 로드합니다. 링크 2, 3, 5, 6은 작동하지만, 잠시 후 URL에서 헤더가 제거됩니다.


제 원래 문제는 앵커만 포함된 링크(같은 페이지의 다른 섹션에 대한 링크)가 포함된 게시글을 인용할 때, 앵커가 인용된 페이지가 아닌 현재 페이지에 상대 경로로 설정되던 것이었습니다. 위의 7개 링크를 인용하면, 첫 번째 링크는 CURRENT PAGE#header-1으로 이동하게 됩니다.

아래에 첨부된 이 버그 리포트의 해결책을 시도해 보았습니다. 페이지로 올바르게 링크되었지만, 앵커는 무시되었습니다.

1개의 좋아요

저도 #앵커 변형에서 이 문제가 발생합니다. 항상 페이지가 다시 로드되는 것은 아닙니다. 아마도 주제가 처음 로드될 때 그런 앵커를 처음 클릭할 때만 발생하는 것 같습니다. 불행히도 정확한 재현 단계를 알려드릴 수는 없습니다.

그리고 여기서 말하는 "리로드"는 브라우저 탭의 새로 고침을 의미하지 않습니다. "웹 앱"이 다시 로드되는 것을 의미하며, 뷰포트 상단에 진행 표시줄이 나타납니다.