DiscourseHub 앱에서 삭제된 주제(예: 알림을 클릭하여)를 방문하려고 하면 당연히 404 페이지가 표시됩니다. 404 페이지에서는 일부 기능이 비활성화되어 있습니다. 예를 들어, 로그인 상태인지 확인할 수 없습니다. 아마도 서버 부하를 줄이기 위한 조치일 것입니다. 그럴 수 있습니다.
하지만 문제는 페이지 하단의 컨트롤도 볼 수 없다는 점입니다. 404 페이지에 있다는 이유만으로 앞으로/뒤로 이동하거나 다른 Discourse 인스턴스로 전환할 수 없어야 하는 이유는 무엇일까요?
삭제된 주제 페이지로 넘어가는 경우는 저한테 그렇게 드문 일은 아닙니다. 그런 일이 몇 번이나 반복되다 보니, 언제 그런 일이 일어나는지, 정확히 어떤 상태가 되는지, 그리고 그 상태에서 어떻게 벗어날 수 있는지 파악하게 됐습니다. (보통은 앱을 강제 종료하는 게 그 상태에서 벗어나는 방법인데, 제가 처음에 찾은 방법이었거든요.) 하지만 네, 이건 확실히 엣지 케이스입니다.
그 컨트롤들이 어디서 생성되는지는 모르겠어요. 저는 그게 Discourse 자체보다는 앱 안에 있는 거라고 가정했거든요. 만약 그렇다면, 앱이 현재 보고 있는 페이지에 따라 필요한 내비게이션 컨트롤을 갑자기 표시하지 않는다는 건 제게 좀 이상하게 느껴집니다. 수정할 가치가 있는지 여부는 여러분이 판단해 주시면 됩니다. 다만, 그런 일이发生时 항상 무슨 일이 일어나고 있는지 파악하는 데 시간이 좀 걸린다는 건 압니다. (위아래로 스크롤하고 컨트롤이 표시되길 기다리지만, 절대 안 나타나거든요. 그리고 과거에는 앱이 그냥 안 되는 줄 알고 강제 종료를 하기도 했었죠.) 이제 마침내 원인을 파악하게 되어서 보고하게 됐습니다.
이것들은 앱이 아니라 Discourse에서 생성됩니다. 해당 기능을 구현할 당시 두 가지 방식을 모두 시도해 보았는데, Discourse에서 처리하는 쪽이 훨씬 매끄러운 경험이었습니다.
저는 이 화면을 직접 경험해 본 적이 없지만, 사용자마다 Discourse를 사용하는 방식이 다르기 때문에 다른 사람들에게는 흔한 상황일 수 있으며(그리고 좌절스러운 경험일 수 있습니다) 이해합니다. 짐작하신 대로, 404 에러에 대해 빠른 정적 페이지가 제공되고 있는 것 같습니다. 그리고 하단 앱 컨트롤은 정적 페이지에 포함되지 않는다고 확신하는데, 그래서 위/아래로 스크롤해도 아무 반응이 없는 것입니다. 정적 페이지에 컨트롤을 추가하는 것이 쉬운 수정인지 조사해 보겠습니다(솔직히 말하면 간단하지 않을 것 같습니다).
아니요, FAQ는 여전히 Ember 앱의 일부입니다. 위에서 언급한 "정적 페이지"란 Ember 앱을 전혀 로드하지 않는 페이지를 의미합니다. 그런 페이지는 많지 않습니다.
몇 가지 간단한 테스트를 해보았는데, 브라우저에 직접 잘못된 URL을 입력하는 경우에만 Ember가 아닌 404 페이지에 도달할 수 있었습니다. Discourse 내부에서 404를 가리키는 링크를 클릭하면 렌더링된 페이지는 Ember에서 제공되며, 따라서 DiscourseHub 하단에 있는 내비게이션 컨트롤이 포함됩니다. 존재하지 않는 URL로 된 링크를 포함된 개인 메시지를 스스로에게 보내서 이 사실을 확인했습니다.
Ember가 아닌 404 페이지에 컨트롤을 추가하는 것은 간단하지 않습니다. 해당 코드는 Ember와 기기 감지에 의존하기 때문에 단순히 복사/붙여넣기할 수 없습니다.
이 404 오류가 발생했을 때 로고를 클릭해 볼 수 있나요? 그러면 Ember 앱 쪽으로 이동하게 되어 이후에는 모든 것이 정상적으로 작동할 것입니다…