別のサイトにDiscourseトピックのリストを埋め込む

複数のカテゴリを指定するには、何を修正すればよいでしょうか?

「いいね!」 2

「他のサイト」がローカル環境の http://localhost:8000 で動作し、Discourse サイトが https サブドメインの非ローカル環境にある場合でも、これは機能するでしょうか?それとも「他のサイト」も「実際の」ドメイン上に存在する必要がありますか?

スクリプトファイルは正常に取得されているようですが、JS コンソールにはエラーが表示されません。「他のサイト」は Gatsby/React サイトです。ページがブラウザでレンダリングされた後、useEffect を通じて <d-topics-list> 要素を追加していますが、ライブ DOM 上では正しく表示されているように見えます(スクリーンショット参照)…

Screen Shot 2021-05-19 at 9.21.08 AM

「いいね!」 2

https から http への変更は通常問題を引き起こしますが、ブラウザのコンソール(F12)を開いて確認できます。

「いいね!」 4

なるほど、私の問題の原因は、React がクライアント側の DOM を操作し、embed-topics.js スクリプトが iframe を挿入した直後に、サーバー側でレンダリングされた DOM(生の <d-topics-list> 要素を含むもの)に一致するようにリセットしていることにあるようです。

「いいね!」 5

このエラーについてご存知の方はいらっしゃいますか?

最新の Discourse ビルド
最新の Chrome ブラウザ

https://vapingcommunity.co.uk/’ のフレーム化が拒否されました。これは、祖先が以下のコンテンツセキュリティポリシーディレクティブに違反しているためです: “frame-ancestors ‘self’”。

「いいね!」 3

おそらくこの変更に関連しています:(cc @falco)

メインサイトが「管理」>「カスタマイズ」>「埋め込み」に登録されていますか?

「いいね!」 7

ビンゴ!その変更には気づきませんでした。また完璧に動作しています。ありがとうございます :wink:

「いいね!」 5

「Refused to frame」エラーが発生した方はいらっしゃいますか?

トピックの埋め込みを有効にしたところ、以下のエラーが発生しました。

Refused to frame 'https://myforumurl.com/' because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'self'".
「いいね!」 1

サイト全体を埋め込もうとしていますか?それはうまくいきません。

OPは、他のサイトにトピックのリストを埋め込む方法を説明していますが、あなたが説明した理由により、Discourseをiframeで実行することはできません。

「いいね!」 3

最新のトピックのみです。設定で埋め込みトピックを有効にするための指示に従い、スクリプトをホストサイトのヘッダーと本文にコピーしました。テスト中の開発サイトにSSLがないことが原因かどうかはわかりません。

「いいね!」 3

これは、Discourse側ではなく、サイトのセキュリティ設定によるものです。

「いいね!」 4

動作しました。指示をよく読んでいませんでした :slight_smile:

「いいね!」 4

これはうまく機能していますが、唯一の問題は、Google が iframe URL 自体をインデックスしていることです。

たとえば、Discourse のトピックをこのページに埋め込んでいます。

Google は上記のページを正常にインデックスしているようですが、以下の URL もインデックスしています。これを修正したいと思います。

https://discuss.flynumber.com/embed/topics?discourse_embed_id=de-zse3f2nh3&template=complete&search=Romania&per_page=5

上記のページに meta noindex を追加する方法はありますか?または、さらに良いことに、上記のページにこの新しい Google タグを追加することはできますか?

「いいね!」 5

興味深いですね、@naderさん、ヒントをありがとうございます。この新しいタグをデフォルトで<iframe>に追加すべきでしょうか、@falcoさん、それとも設定にするべきでしょうか?

「いいね!」 4

これで完了するはずです

「いいね!」 6

すべてのクローラーに ' noindex, indexifembedded ' を提供していることを指摘しておきます。これは、新しい indexifembedded をサポートしている Google のみ対象であるべきです Google Developers です。

これは x-robots-tag: googlebot:noindex, indexifembedded に変更すべきです。

あるいは、noindex が他の検索エンジンに予期せぬ影響を与える可能性があるため、完全に削除すべきです。

「いいね!」 1

追加の単語が他のクローラーに特に害を及ぼすとは思いません。その証拠はありますか?例えば、他のクローラーがサイトに indexifembedded を使用しないように伝えていますか?

(ほとんどの場合、このようにコードを書くときは、予期しないHTMLタグは無視する傾向があります。それがHTMLのデフォルトのようなものです。)

「いいね!」 3

それは見当たりませんが、Googleのページには次のように書かれています。

現在、indexifembedded タグをサポートしているのは Google だけです。

indexifembedded は無視されることに同意しますが、私の懸念は noindex がそのページ自体のSEOに問題を引き起こすことです。

では、Bingにトピック埋め込みがあるURLをクロールさせてみましょう。Bingは、そのURLと埋め込みURLの両方をクロールします。

/embed/topics?discourse_embed_id=XXXXXX....

上記が noindex の場合、トピック埋め込みをフィーチャーしているページのSEOに悪影響を与えるのではないかと心配しています。

これらはすべて x-robots-tag: googlebot:noindex, indexifembedded を使用することで修正できますが、Discourseが1つの検索エンジンを優先したくない理由も理解できます。標準になることを願っていますが、今のところGoogleだけのように思えます。

「いいね!」 3

埋め込みトピックを target="_parent" ではなく target="_blank" として開くための組み込みの方法がまだないかどうか、お尋ねしたかったのです。

「いいね!」 3

トピックが1つしか表示されないのはなぜか、ただ気になっただけです。誰か知りませんか?

こちらがカテゴリです(多くのトピックがあります):Amazon Specific - eCommerce Sellers Forum

そして埋め込みコードです:
<d-topics-list discourse-url="https://forum.flowster.app" template="complete" top_period="all" category="17" per-page="5"></d-topics-list>

しかし、表示されるのは1つのトピックだけです:

:thinking:

「いいね!」 2