커스텀 라우트가 크롤러 뷰에 인덱싱/표시되지 않음

계속: Creating Routes in Discourse and Showing Data

네크로포스팅해서 죄송합니다. 하지만 이 질문을 할 적절한 곳인 것 같아서요…

이 튜토리얼과 다른 데이터 라우트 생성 및 표시 튜토리얼을 따라 해본 결과,

관리자가 아닌 /snack 페이지에 대해 이를 복제했고, 잘 작동하며 제 데이터가 완벽하게 표시됩니다!
즉, 다음과 같은 형태입니다:

...</header>

<h1>donut</h1>

<hr>

<p>delicious!</p>

<footer>...

하지만 방금 깨달은 것은, 이 페이지가 어디에서도 인덱싱, 크롤링, 사이트맵, SEO 등이 되지 않는다는 것입니다. 아마도 Discourse 페이지에는 JS가 아닌 “크롤러 뷰” 버전이 있기 때문인 것 같습니다…

그래서… 위 튜토리얼을 따라 다음 단계로 넘어가서, 해당 페이지의 JS가 아닌 “크롤러 뷰” 버전에도 동일한 데이터를 표시하려면 어떻게 해야 할까요?

현재 JS가 아닌 버전은 다음과 같이 보입니다:

...</header>

empty

<footer>...

실제로 "empty"라는 텍스트가 표시됩니다. 이는 기본적으로 empty.html.erb가 로드되기 때문이죠? 대신 { name: "donut", description: "delicious!" }를 표시하려면 어떻게 해야 할까요? :slight_smile:

구글에서 몇 가지 방법을 시도해 보았지만, 유용한 것이 없었습니다…
respond_to do...와 format.html..., 그리고 format.json... 같은 것들…
그리고 다양한 종류의 render plain, text, html…
아무것도 작동하지 않았습니다…

:frowning:

JS가 아닌 뷰를 위한 별도의 .html.erb 템플릿을 사용하는 건 어떨까요?
어떤 이름으로 지어야 하나요? 어디에 배치해야 하나요? { name: "donut", description: "delicious!" }를 그 템플릿에 전달하는 방법은 무엇인가요?

:frowning:

도움 부탁드립니다 :grinning:

잘 모르겠습니다. 하지만 JS가 없는 템플릿은 꼭 필요합니다. JavaScript를 끄고 페이지를 방문하면 어떻게 되나요?

일반적인 비-JS 페이지가 표시됩니다… 헤더… 푸터…

하지만 이는 당연한 일입니다. 모든 튜토리얼은 JSON 데이터를 Ember 템플릿에 전달하는 방법만 다루고 있기 때문입니다…

JavaScript만 있는 페이지는 크롤링되지 않습니다.

제가 작업 중이던 내용을 참고해 보시는 것이 좋을 수 있습니다:

왜 그걸 보여주시는 거예요? ^^
저는 Discourse에서 라우트 생성 및 데이터 표시 튜토리얼에 대해 물어본 건데요…
그걸 따라 해봤어요.
라우트도 있고
데이터도 있어요: { name: "donut", description: "delicious!" }
라우트가 json을 읽고 그 데이터를 표시합니다.

그 동일한 데이터를 크롤러 페이지로 가져가는 방법은 무엇일까요?

정적 페이지 플러그인의 다른 버전이 그걸 어떻게 도와줄 수 있나요? ^^ 정적 페이지 플러그인은 많이 나와 있지만, 대부분은 방치되고 죽어 있는 상태예요. 그래서… 또 하나 나온 거네요…

같은 질문을 가진 토픽을 찾았어요. How to transfer data from plugin to app/views templates?
거기에서도 아무도 그 사람에게 도움을 주지 못했어요. ^^
그리고 그 사람의 해결책이 discourse 사용을 중단하는 것이었던 것 같아요. ^^

그게 유일한 “진짜” 해결책인가요? :slight_smile:

이것은 Discourse용 플러그인으로, 결국 크롤러에 노출되고 자체 라우트를 가진 백엔드 템플릿을 렌더링하기 때문입니다.

아마도 다음을 해볼 수 있을 것입니다:

  1. 그것을 사용하거나
  2. 필요에 맞게 수정해 보세요.

생각해 보니, 확장 기능 없이 기본 플러그인을 확인하는 것이 가장 좋을 것 같습니다:

하지만 원하시는 대로 하시면 됩니다.

그러니까 방법을 잘 알고 있는 거죠…
그냥 어떻게 하는지 보여줄 수 없나요? ^^

예를 들어 "크롤러 페이지에도 'to make donut delicious!'가 나타나게 하려면, 이 특정 파일에 이 작은 코드 한 줄을 추가하세요"처럼요…
끝…

여기서 도와주는 게 불법인가요? ^^
너무 복잡하거나 해킹적인 방식이라 20개나 되는 새 파일을 만들고 수백, 수천 줄의 읽기 힘든 쓰레기 코드를 작성해야 한다면, 물론 대안적인 솔루션을 선택하는 것이 합리적일 수 있겠죠… ^^

Hi @MrBug :slight_smile:

원하시는 답변을 받지 못해 답답하신 점에 대해 죄송합니다. 다만, 해당 주제를 검토한 결과, 게시물들의 톤이 meta에서 기대하는 수준과 점점 더 맞지 않게 되고 있음을 확인했습니다. 참여를 계속하시려면, 자신의 시간과 노력을 들여 문제를 해결하는 데 도움을 주고 있는 분들에게 존중을 표해 주시기를 부탁드립니다.

이제 이 주제를 닫겠습니다.