콘텐츠에 CSS 태그를 사용하고 있으며, 임베딩 관리자 설정에서 CSS 선택자를 지정했지만 크롤러가 이를 인식하지 못하고 있습니다. 제 사이트가 React로 구축되어 있어 CSS 선택자에 접근할 수 없어서 그런 것 같습니다. React 사이트에서 이 기능을 어떻게 사용할 수 있을까요?
그럴 수도 있지만, Discourse가 해당 사이트로 보내는 요청에는 HTML이 반환되어야 한다고 예상합니다. 확인해 볼 다른 사항으로는, Discourse가 외부 사이트에서 가져온 내용을 10분 동안 캐시한다는 점입니다. 이는 allowed embed selectors 사이트 설정을 조정하는 경우, 새로운 설정 값의 결과를 확인하려면 최대 10분까지 기다려야 함을 의미합니다.
Discourse 사이트가 아직 프로덕션 환경이 아니고 Discourse 사이트의 Rails 콘솔에 접근할 수 있다면, Rails.cache.clear 명령어를 사용하여 콘솔에서 캐시를 삭제할 수 있습니다.
해당 설정에 대한 추가 세부 사항은 여기에 있습니다: Configuring allowed embed selectors.
수정: 임베딩이 예상대로 작동하고 있다고 _생각_합니다. 다만 일부 사이트에서는 설정이 까다로운 것 같습니다. 이 주제를 #support로 이동할 것입니다.
몇 달 전에 임베디드 포스트를 파싱하는 더 나은 방법을 Discourse가 찾아야 한다고 제안하는 Contribute > Feature 주제를 생성한 적이 있습니다: Topic embedding needs some love. 다른 사람이 먼저 하지 않는 한, 곧 이 작업에 시간을 투자할 예정입니다.
Discourse는 크롤러에게 다른 뷰를 제공합니다. 이를 보려면 JavaScript를 비활성화한 상태로 방문해야 합니다.
임베드된 게시글은 임베드된 사이트에 존재하지 않으므로 크롤링되지 않을 것으로 예상합니다.
안녕하세요. 내비게이션이 내 React 사이트를 크롤링하는 방식, 즉 임베드된 게시물 기능에 대해 말씀드리고자 합니다. 내비게이션이 내 React 페이지를 인식하는 방식 때문에, 내비게이션 게시물에 어떤 콘텐츠를 포함할지 지시하는 것이 매우 어렵습니다.
도움이 된다면, 외부 게시물을 가져오기 위해 사용되는 코드는 여기 있습니다: discourse/app/models/topic_embed.rb at main · discourse/discourse · GitHub
사이트의 Rails 콘솔에 액세스 권한이 있다면, 이를 통해 테스트하여 어떤 일이 일어나고 있는지 파악할 수 있습니다. 예를 들어:
TopicEmbed.find_remote("https://blog.discourse.org/2023/04/introducing-discourse-ai/")
문제가 발생한 부분은 find_remote 메서드 끝에 호출되는 parse_html 메서드입니다. Ruby Readability는 일부 HTML/CSS를 처리하는 데 어려움을 겪습니다.
또한 React 사이트에서 HTML이 반환되지 않을 수도 있습니다. find_remote 메서드에 포함된 코드를 콘솔에서 단계별로 실행하여 이를 확인할 수 있습니다.
정말 훌륭합니다, 감사합니다!