매우 중요한 버지는 아니지만, 포럼에서 .js로 끝나는 존재하지 않는 사용자 페이지를 방문하면 CSS가 렌더링되지 않습니다.
@RiversideRocks님은 데이터 반환을 기대하고 있는 것이 아닙니다.
그분은 단순히 자신이 올린 링크처럼 .js 확장자를 가진 링크의 경우, 404 페이지가 예상대로 표시되지 않는다는 점을 지적하고 있는 것입니다. 따라서 해당 토픽을 생성한 것입니다:
확장자가 잘못되었을 때(이 경우 .js), 올바르게 포맷된 404 페이지가 반환되는 것이 합리적입니다. 왜냐하면 다른 확장자가 사용된 경우(예: .xml)에는 404 페이지가 올바르게 포맷되어 표시되기 때문입니다:
@RiversideRocks님은 단순히 .js 확장자가 404(파일을 찾을 수 없음)로 처리될 때, 404 페이지가 예상대로 깔끔하게 포맷되지 않는다는 점을 지적하고 있는 것입니다.
네, 맞습니다. 그리고 OP의 말도 맞아요.
흥미로운 불일치 현상이네요. 왜 이런 일이 일어나는지 이해하고 싶습니다.
참고로, 왜 이런 종류의 .js 라우트를 열려고 하는 건가요?
고수준에서 보면(Ember에 대해 전혀 알지 못하므로 일반적인 관점에서 말씀드리는 것입니다), 이런 일이 발생하는 이유는 Discourse가 .js 확장자를 가진 파일을 로드하려고 시도하기 때문이라고 생각합니다. 그 결과 콘솔에 JavaScript 404 오류가 발생하고, 이로 인해 Discourse Ember 404 페이지가 완전히 로드되지 못합니다(JS 실패).
따라서 일반적인 404 페이지는 로드되지만, JS 오류(404 JS 로딩 오류도 존재하기 때문)로 인해 원래의 깔끔한 방식으로 렌더링되지 않습니다.
Discourse가 .js 파일 확장자를 감지할 때 전송하는 헤더와 관련이 있는 건지 궁금했는데, 그 부분은 맞는 것 같습니다.
안녕하세요 @RiversideRocks
정말 신경 쓰인다면, 해당 페이지에 직접 CSS를 추가해서 스타일을 지정해 보세요. 그러면 JS가 실패해도 여전히 예쁘게 보입니다 ![]()
하지만 @merefield 님이 언급했듯이, 그건 일반적인 링크나 라우트가 아니므로 왜 신경 쓰시나요?
나는 별로 신경 쓰지 않았고, 그냥 멋진 버그라고 생각해서 공유하고 싶었을 뿐입니다.
비정상적인 라우트에 관한 이야기로, 게시글 URL 끝에 .js 확장자를 붙이면 오류가 발생하지만, 해당 페이지는 실제로 존재합니다.
https://meta.discourse.org/t/404-page-breaks-when-js-is-added-to-the-end-of-a-user-page/161777/8.js



