Wenn ich eine Bandcamp-URL in einem Discourse-Forum poste, wird deren eingebetteter Player geladen. Wie kann ich das mit meiner eigenen Musik-Website erreichen?
Ich habe versucht, og:video-Tags zu setzen, aber ohne Erfolg.
Danke!
Wenn ich eine Bandcamp-URL in einem Discourse-Forum poste, wird deren eingebetteter Player geladen. Wie kann ich das mit meiner eigenen Musik-Website erreichen?
Ich habe versucht, og:video-Tags zu setzen, aber ohne Erfolg.
Danke!
Sie meinen auf Ihrer Website, die kein Discourse ist?
Sie können im Discourse-Quellcode nach „onebox“ oder vielleicht „one_box“ suchen.
Oder sehen Sie sich vielleicht https://get.bandcamp.help/hc/en-us/articles/360013561254-How-do-I-create-a-Bandcamp-embedded-player-#:~:text=To%20create%20an%20embedded%20player,your%20merchandise%2C%20and%20so%20on. an und verwenden Sie dies, um Code für Ihre Website zu entwickeln.
Hallo Jay,
Ich habe eine Website, die Bandcamp ähnelt. Ich habe Einbettungen erstellt, die dem von Ihnen eingefügten Link ähneln, sodass Sie einen iFrame auf einer anderen Website hinzufügen können und meine Einbettung angezeigt wird.
Aber worüber ich spreche, ist eine Art Magie, die zu passieren scheint, wenn man einfach eine Bandcamp-URL postet, eine vollständige iFrame-Einbettung erscheint. Ist das etwas, das auf dem Discourse-Server konfiguriert ist?
Mal sehen, ob das hier funktioniert. Ich werde unten eine Bandcamp-URL einfügen.
Ja ^ wie Sie sehen können, ist ein funktionierender eingebetteter Musik-Player erschienen. Ich habe keinen iFrame oder JavaScript eingefügt, nur die Einbettungs-URL, die ich oben zitiert habe.
Ist das etwas Besonderes, das Discourse für bestimmte Websites kann, oder gibt es magische Header-Tags, die Sie setzen können, um ihm mitzuteilen, welche Einbettungs-URL verwendet werden soll?
Wie Jay bereits erwähnte, sollten Sie sich den Quellcode ansehen.
„Onebox“ ist die Bibliothek, die unter anderem einige URLs in Embeds umwandelt.
Haben Sie sich Folgendes angesehen?:
Ich glaube, die ursprüngliche Absicht war, dass dieser Code auch auf Nicht-Discourse-Websites verwendet wird.
Zu diesem Zweck gibt es ein (jetzt nicht mehr gepflegtes) Gem, das Sie möglicherweise nutzen können (vorausgesetzt, Ihre Website ist RoR). Vielleicht wären Sie daran interessiert, es zu pflegen?
Eine Warnung: Der Code auf Discourse hat sich seitdem positiv weiterentwickelt.
Hallo Robert,
Vielen Dank, dass Sie das für mich herausgesucht haben. Ja, es gibt spezifischen Code dafür in Discourse. Es ist nichts, was ich auf meiner Website tun muss. Das beantwortet diesen Teil. Wenn ich also möchte, dass meine Website auf Discourse (und potenziell anderen Foren) auf die gleiche Weise unterstützt wird wie Bandcamp, muss ich den Code anfordern oder dazu beitragen, damit er auch für meine funktioniert.
Ich habe auch eine zweite Frage. Neben dem Einfügen der URL habe ich auch versucht, das Einbetten mit dem iframe-Tag hinzuzufügen. Das funktioniert auf einer normalen Website gut, aber wenn ich es auf meinem Discourse-Forum tue, funktioniert es nicht. Es erschien ein quadratisches Feld, aber nicht die Einbettung darin. Ich vermutete, es handelte sich um ein Berechtigungsproblem, also fügte ich meinen Host zu den erlaubten iframes hinzu, aber es funktioniert immer noch nicht.
–
OK, gerade als ich dabei war, einen Screenshot zu machen, um zu zeigen, dass es nicht funktioniert, scheint es angefangen zu haben zu funktionieren! Ich frage mich also, ob es eine Art Verzögerung im System gibt, bis die erlaubten Hosts angewendet werden.
Ich werde weiter untersuchen. Vielen Dank für Ihre bisherige Hilfe.
Ok, ich habe gerade gemerkt, was passiert. Wenn man die „Allow iframe“-Einstellungen ändert, wirkt sich das nicht auf bestehende Beiträge aus (zumindest nicht sofort). Möglicherweise tun sie das später … bin mir nicht sicher.
Aber – wenn man einen neuen Beitrag erstellt oder einen bestehenden Beitrag bearbeitet, werden die Einstellungen wirksam.
Jetzt funktionieren sowohl mein Embed als auch meine URL – das bedeutet, ich muss nur noch die entsprechenden Foren kontaktieren und sie bitten, meinen Domainnamen zu den erlaubten Hosts hinzuzufügen, und es sollte von da an funktionieren.
Danke
Hallo
![]()
Ältere Beiträge müssen neu gebacken werden. Sie können dies manuell tun, indem Sie auf das Drei-Punkte-Symbol unter dem Beitrag klicken, dann auf den Schraubenschlüssel und dann auf HTML neu erstellen.

Wenn Sie viele Beiträge haben, die neu gebacken werden müssen, benötigen Sie möglicherweise die rake task, um alle Beiträge neu zu backen, oder Sie verwenden ein benutzerdefiniertes Rails-Skript, um nur einige davon nach den benötigten Kriterien neu zu backen.
So etwas denke ich:
Post.where('raw LIKE ?', 'eine bestimmte URL').find_each do |p|
p.rebake!
end