2013-05-10 5 views
7

Laut meinen Tests werden die clientseitigen Vorlagen von Facebook-Crawlern nicht wie ein Browser gerendert.Wie man Facebook aufruft Öffnen Sie graphfreundliche Meta-Tags mit clientseitigen Vorlagen-Engines wie AngularJS, Moustache, Lenkstangen

Ich möchte einen Webserver vermeiden und HTML-Dateien für Open Graph-Objekte um jeden Preis erstellen. Ich möchte die Metatags spontan über die URL generieren, aber Facebook scheint das nicht zu tun.

Kann jemand von Facebook bestätigen? Ich fragte den Leiter von Open Graph auf #mobiledevcon und sie sagte, dass Facebook kann Zeug wie {{Wert}}

Meine Meta-Tags sind wie folgt, und sie machen in jedem Browser gut. Aber der Facebook Open Graph Debugger sieht nur den Rohtext, nicht den interpolierten Inhalt.

<meta property="{{meta.property}}" content="{{meta.content}}"> 

Antwort

12

Wenn Sie darüber nachdenken, sollte klar sein, warum das nicht funktioniert.

Der Facebook-Crawler lädt den HTML-Code herunter, wie er vom Server bereitgestellt wird. Der Facebook Crawler wird nicht JavaScript ausführen, wie alle Crawler das JavaScript nicht ausführen. Dies ist aufgrund von Sicherheitseinschränkungen und aus Gründen der Geschwindigkeit (sie haben nicht die Zeit JavaScript auf ihren Servern ausführen.)

Es gibt keine Möglichkeit um diese. Wenn Sie möchten, dass der Crawler Ihre Seite indiziert, müssen Sie ihnen direkt mitteilen, was sie lesen sollen.

Tipp: Sie könnten etwas wie phantom.js verwenden, um Ihre Seiten auf der Serverseite zu rendern und dies den Crawlern zu liefern.

+5

Diese Antwort ist genau richtig. Ich habe einen Artikel über eine relativ schmerzfreie Arbeit geschrieben: http://www.michaelbromley.co.uk/blog/171/enable-rich-social-sharing-in-your-angularjs-app/ was nicht erforderlich ist phantom.js, nur irgendeine serverseitige Sprache (PHP, Ruby, was auch immer). –