コンテンツにCSSタグがあり、埋め込み管理設定でCSSセレクターを特定しましたが、クローラーで認識されていません。サイトがReactで構築されており、CSSセレクターにアクセスできないためだと考えられます。Reactサイトでこの機能を使用するにはどうすればよいですか?
それが原因である可能性はありますが、Discourseがサイトに対して行うリクエストはHTMLを返すはずです。もう1つ確認すべき点は、Discourseは外部サイトから取得したコンテンツを10分間キャッシュすることです。つまり、allowed embed selectorsサイト設定を調整した場合、新しい設定値の結果を確認するには最大10分待つ必要があるということです。
Discourseサイトがまだ本番環境ではなく、DiscourseサイトのRailsコンソールにアクセスできる場合は、コンソールからRails.cache.clearでキャッシュをクリアできます。
設定に関する追加の詳細は、こちらで確認できます: https://meta.discourse.org/t/configure-the-allowed-embed-selectors-setting/134481/1。
編集: 埋め込みは期待どおりに機能していると思います。単に一部のサイトでは設定が難しいだけです。このトピックを#supportに移動します。
数か月前に、Discourseが埋め込み投稿を解析するより良い方法を見つけるべきだと提案する#featureトピックを作成しました: https://meta.discourse.org/t/topic-embedding-needs-some-love/262763。誰かが私より先に着手しない場合は、すぐに時間をかけて取り組みます。
Discourse はクローラーに異なるビューを表示します。表示するには、JavaScript をオフにしてアクセスする必要があります。
埋め込み投稿は、埋め込まれたサイトに存在しないため、クロールされるとは思いません。
こんにちは。埋め込み投稿機能でDiscourseが私のReactサイトをクロールする方法についてお尋ねします。Reactページの見え方 때문에 Discourseの投稿に含めるコンテンツを伝えるのに苦労しています。
参考になれば、外部投稿を取得するために使用されるコードはこちらです: 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メソッド内のコードを段階的に実行することで確認できます。
これは素晴らしいです、ありがとうございます!