404 페이지에 앱 내 컨트롤이 표시되지 않음

DiscourseHub 앱에서 삭제된 주제(예: 알림을 클릭하여)를 방문하려고 하면 당연히 404 페이지가 표시됩니다. 404 페이지에서는 일부 기능이 비활성화되어 있습니다. 예를 들어, 로그인 상태인지 확인할 수 없습니다. 아마도 서버 부하를 줄이기 위한 조치일 것입니다. 그럴 수 있습니다.

하지만 문제는 페이지 하단의 컨트롤도 볼 수 없다는 점입니다. 404 페이지에 있다는 이유만으로 앞으로/뒤로 이동하거나 다른 Discourse 인스턴스로 전환할 수 없어야 하는 이유는 무엇일까요?

저에게는 뒤로/앞으로 버튼이 보이는데요? 아래로 스크롤하면 팝업이 나타납니다. 제 화면을 확인해 보세요:

또한, 링크를 클릭하면 다른 주제로 이동할 수 있습니다. 하지만 이 방법은 이상적이지는 않겠죠.

정말 이상하네요. 보고하기 전에 두 번은 시도해 봤습니다. 메타에서요. 제가 제안드린 방법처럼 다른 링크를 클릭하는 것 말고는 표시되게 할 방법이 없었습니다.

수정: 잠깐. 404 페이지가 관리자일 때 다르게 작동하나요? 404 페이지에서 벗어나기 전까지는 로그인되어 있다는 사실조차 알 수 없었는데, 스크린샷에서는 프로필 사진이 보이기 때문입니다.

확실하지는 않는데, 현재 보고 계신 화면의 스크린샷을 공유해 주실 수 있을까요?

여기 있습니다

이 문제는 페이지 콘텐츠의 높이가 뷰포트 높이에 가까운 경우 발생할 수 있습니다. 404 페이지에서 위나 아래로 스와이프하면 하단의 컨트롤이 표시되기 시작합니까?

여기서 우리가 할 수 있는 일이 많지 않을 것 같고, 또한 이는 매우 드문 사용 사례(예: 푸시 알림을 통해 404 페이지에 도달하는 경우)일 것입니다.

아니요, 표시되지 않습니다. 그 작동 방식은 잘 알고 있어요.

삭제된 주제 페이지로 넘어가는 경우는 저한테 그렇게 드문 일은 아닙니다. 그런 일이 몇 번이나 반복되다 보니, 언제 그런 일이 일어나는지, 정확히 어떤 상태가 되는지, 그리고 그 상태에서 어떻게 벗어날 수 있는지 파악하게 됐습니다. (보통은 앱을 강제 종료하는 게 그 상태에서 벗어나는 방법인데, 제가 처음에 찾은 방법이었거든요.) 하지만 네, 이건 확실히 엣지 케이스입니다.

그 컨트롤들이 어디서 생성되는지는 모르겠어요. 저는 그게 Discourse 자체보다는 앱 안에 있는 거라고 가정했거든요. 만약 그렇다면, 앱이 현재 보고 있는 페이지에 따라 필요한 내비게이션 컨트롤을 갑자기 표시하지 않는다는 건 제게 좀 이상하게 느껴집니다. 수정할 가치가 있는지 여부는 여러분이 판단해 주시면 됩니다. 다만, 그런 일이发生时 항상 무슨 일이 일어나고 있는지 파악하는 데 시간이 좀 걸린다는 건 압니다. (위아래로 스크롤하고 컨트롤이 표시되길 기다리지만, 절대 안 나타나거든요. 그리고 과거에는 앱이 그냥 안 되는 줄 알고 강제 종료를 하기도 했었죠.) 이제 마침내 원인을 파악하게 되어서 보고하게 됐습니다.

감사합니다.

이것들은 앱이 아니라 Discourse에서 생성됩니다. 해당 기능을 구현할 당시 두 가지 방식을 모두 시도해 보았는데, Discourse에서 처리하는 쪽이 훨씬 매끄러운 경험이었습니다.

저는 이 화면을 직접 경험해 본 적이 없지만, 사용자마다 Discourse를 사용하는 방식이 다르기 때문에 다른 사람들에게는 흔한 상황일 수 있으며(그리고 좌절스러운 경험일 수 있습니다) 이해합니다. 짐작하신 대로, 404 에러에 대해 빠른 정적 페이지가 제공되고 있는 것 같습니다. 그리고 하단 앱 컨트롤은 정적 페이지에 포함되지 않는다고 확신하는데, 그래서 위/아래로 스크롤해도 아무 반응이 없는 것입니다. 정적 페이지에 컨트롤을 추가하는 것이 쉬운 수정인지 조사해 보겠습니다(솔직히 말하면 간단하지 않을 것 같습니다).

흥미롭네요.

참고로 방금 FAQ 페이지를 확인해 봤는데, 제가 생각했던 것과 달리 '정적 페이지’가 아니었네요. 컨트롤이 여전히 표시되고 있거든요.

아니요, FAQ는 여전히 Ember 앱의 일부입니다. 위에서 언급한 "정적 페이지"란 Ember 앱을 전혀 로드하지 않는 페이지를 의미합니다. 그런 페이지는 많지 않습니다.

몇 가지 간단한 테스트를 해보았는데, 브라우저에 직접 잘못된 URL을 입력하는 경우에만 Ember가 아닌 404 페이지에 도달할 수 있었습니다. Discourse 내부에서 404를 가리키는 링크를 클릭하면 렌더링된 페이지는 Ember에서 제공되며, 따라서 DiscourseHub 하단에 있는 내비게이션 컨트롤이 포함됩니다. 존재하지 않는 URL로 된 링크를 포함된 개인 메시지를 스스로에게 보내서 이 사실을 확인했습니다.

Ember가 아닌 404 페이지에 컨트롤을 추가하는 것은 간단하지 않습니다. 해당 코드는 Ember와 기기 감지에 의존하기 때문에 단순히 복사/붙여넣기할 수 없습니다.

이 404 오류가 발생했을 때 로고를 클릭해 볼 수 있나요? 그러면 Ember 앱 쪽으로 이동하게 되어 이후에는 모든 것이 정상적으로 작동할 것입니다…

응, 이제 그렇게 하고 있어. (강제 종료하기 전에 기억나면, ㅋㅋ)

아, 설명해줘서 고마워.