Einbettungs-Post: Kann CSS Selectors von React-Website nicht lesen

Ich habe CSS-Tags in meinen Inhalten und habe die CSS-Selektoren in den Einstellungen für das Einbetten-Admin identifiziert, aber sie werden vom Crawler nicht erfasst. Ich glaube, das liegt daran, dass meine Website mit React erstellt wurde und die CSS-Selektoren nicht zugänglich sind. Wie kann ich diese Funktion mit einer React-Website nutzen?

Das mag sein, obwohl ich erwarten würde, dass die Anfrage, die Discourse an die Website stellt, HTML zurückgibt. Etwas anderes, das man untersuchen sollte, ist, dass Discourse den Inhalt, den es von der externen Website abruft, 10 Minuten lang zwischenspeichert. Das bedeutet, dass Sie, wenn Sie die Website-Einstellung allowed embed selectors anpassen, bis zu 10 Minuten warten müssen, um die Ergebnisse des neuen Einstellungswerts zu sehen.

Wenn Ihre Discourse-Website noch nicht in Produktion ist und Sie Zugriff auf die Rails-Konsole der Discourse-Website haben, können Sie den Cache über die Konsole mit Rails.cache.clear löschen.

Weitere Details zu dieser Einstellung finden Sie hier: Configuring allowed embed selectors.

Bearbeitet: Ich glaube, dass das Einbetten wie erwartet funktioniert. Es ist nur schwierig, es für einige Websites zu konfigurieren. Ich werde dieses Thema nach Support verschieben.

Ich habe vor ein paar Monaten ein #feature-Thema erstellt, in dem ich vorschlage, dass Discourse einen besseren Weg finden sollte, eingebettete Beiträge zu parsen: Topic embedding needs some love. Ich werde mich bald darum kümmern, wenn niemand vor mir dazu kommt.

3 „Gefällt mir“

Discourse stellt Suchmaschinen eine andere Ansicht zur Verfügung. Um diese zu sehen, müssen Sie die Seite mit deaktiviertem JavaScript besuchen.

Ich würde nicht erwarten, dass eingebettete Beiträge gecrawlt werden, da sie auf der Seite, auf der sie eingebettet sind, nicht existieren.

Hallo, ich beziehe mich darauf, wie Discourse meine React-Website mit der Funktion für eingebettete Beiträge crawlt. Es fällt mir schwer, ihm mitzuteilen, welche Inhalte im Discourse-Beitrag enthalten sein sollen, da es meine React-Seite sieht.

Wenn es hilft, ist der Code, der zum Abrufen des externen Beitrags verwendet wird, hier: discourse/app/models/topic_embed.rb at main · discourse/discourse · GitHub

Wenn Sie Zugriff auf die Rails-Konsole Ihrer Website haben, können Sie sie testen, um eine Vorstellung davon zu bekommen, was vor sich geht. Zum Beispiel:

TopicEmbed.find_remote("https://blog.discourse.org/2023/04/introducing-discourse-ai/")

Wo ich auf Probleme gestoßen bin, ist die Methode parse_html, die am Ende der Methode find_remote aufgerufen wird. Ruby Readability hat Schwierigkeiten mit einigen HTML/CSS.

Es ist auch möglich, dass von Ihrer React-Website kein HTML zurückgegeben wird. Sie könnten dies bestätigen, indem Sie den Code, der sich in der Methode find_remote befindet, schrittweise von der Konsole aus ausführen.

2 „Gefällt mir“

Das ist ausgezeichnet, danke!