검색 결과에 about.html 페이지가 두드러지게 보이지만 실제로는 없음

about.html로 가는 링크는 있는데, 여기처럼 Meta에서도(About - Discourse Meta) 해당 페이지가 없습니다.

설정 등을 놓친 건가요? 감사합니다!

discourse에는 .html 확장자가 없습니다.

About - Discourse Meta <— 이것이 올바른 URL입니다

네, 감사합니다. 하지만 구글이 어딘가에서 하나를 찾아냈네요. :man_shrugging:

보이지 않아요

흥미롭네요 :wink: 저도 그렇고 이렇게도 찾을 수 있습니다:


→ about.html

찾았습니다.

사이트맵 플러그인을 설치해 보시는 건 어떨까요?

감사합니다. 하지만 이미 설치되어 있습니다.

사이트맵 플러그인은 /about 페이지조차 광고하지 않습니다.
제가 생각할 수 있는 것은 어딘가에서 누군가가 /about.html로 링크를 걸고 있다는 것입니다.

그리고 Discourse가 이를 위해 200 OK를 반환하고 있습니다 :scream: :scream: :scream:

잘못된 문서 이름에도 불구하고 많은 경우 200 응답을 반환합니다:

  • faq.html
  • categories.html
  • u.html
  • tags.html
  • top.html
  • badges.html

이것이 내장된 라우트와만 관련이 있는지 궁금했는데, 케이크 데이 플러그인에서는 작동합니다:

  • /cakeday/anniversaries/today.html

하지만 knowledge-explorer에서는 404 오류가 발생합니다:

  • /docs.html

하지만 다음 파일에서는 발생하지 않습니다:

  • badges.html

:thinking:

한두 주 전에 js 파일과 비슷한 문제가 있었던 것 같은데?

음, @eviltrout 이런 특이한 URL에 대해 200을 반환해야 할까요?

이 문제는 Rails 라우팅 방식과 관련이 있습니다. 기본적으로 Rails는 모든 엔드포인트가 선택적으로 마침표를 포함하여 :format 매개변수를 지정할 수 있도록 허용합니다. 즉, .html은 HTML 형식을, .json은 JSON 형식을 의미합니다.

about.html은 /about과 동일하며(둘 다 HTML 버전을 요청합니다). 그러나 Ember에서는 HTML 확장자를 가진 라우트를 사용하지 않으므로 about.html 라우트가 존재하지 않습니다. 이로 인해 백엔드와 프론트엔드 사이에 불일치가 발생합니다. 서버는 200 응답을 반환하지만, 클라이언트 측에서는 해당 리소스를 찾을 수 없다고 판단합니다.

이를 해결하는 방법이 몇 가지 있습니다. Rails 라우트를 세분화하여 .html은 지원하지 않으면서 .json은 계속 지원하도록 할 수 있습니다. 이를 전역적으로 적용하는 방법은 보이지 않지만, 제가 모르는 방법이 있을 수도 있습니다.

솔직히 이 작업에 대해 큰 흥미를 느끼지 못합니다. 제가 파악하지 못한 매우 시급한 이유가 없는 한, 이 상태로 두어도 괜찮을 것 같습니다.