2016-04-14 12 views
0

Ich habe diese reactjs Webapp - http://52.26.51.120/Wie man reactjs dienen statische Seiten für SEO

Es lädt eine einzelne Seite und dann können Sie auf Links klicken, um dynamisch andere Boards auf der gleichen Seite ... wie 52.26 zu laden. 51.120/#/b, 52.26.51.120/#/g

Jetzt ist die Sache, ich will jede von diesen eine einzelne Seite sein, zum Zweck von seo. Ich möchte, dass Sie in der Lage sind, "my-site.com g" zu googeln, und Sie werden das Ergebnis 52.26.51.120/#/g sehen. Dies kann natürlich nicht funktionieren, wenn Sie reactjs verwenden und alles auf einer Seite ist. Google wird nur diese Hauptseite rendern und zwischenspeichern (kann es sogar diese Seite rendern? Führt Google Javascript aus?)

Noch genauer, ID möchte etwas wie meine-site.com/g/1234, um einen Thread zu laden. Es könnte jeden Tag tausend Fäden geben, also bin ich mir nicht sicher, wie ich damit umgehen soll.

Gibt es irgendwelche Lösungen? um reagieren zu können, um statische Seiten als HTML aufzufrischen, damit sie bei Google zwischengespeichert werden können? Ich benutze expressjs und webpack als meinen Server und der gesamte Code wird in jsx-Dateien ausgeführt.

Dank

+0

Suche nach „reagiert universal“, „reagiert isomorph“ oder „Server-Rendering reagieren“, werden Sie eine Menge von Tutorials. Wenn Sie JavaScript auf dem Server verwenden, sind Sie bereits auf halbem Weg. –

+0

okay, ich sehe, was du meinst, aber ich kann nicht herausfinden, wie man es mit einem Parameter in der URL macht, also wäre die Route in Express etwas wie ("/: board"), und dann würde es das weitergeben die jsx-Datei, die einen benutzerdefinierten html für diesen Parameter zurückgeben würde – Adamater

+0

In Bezug auf das serverseitige Rendering wird der Server nur die anfängliche 'index.html'-Datei und Javascript rendern und dann die Routenbehandlung über' ReactRouter' zurück an den Client übergeben. Jede Anfrage, die in 'app.get ('/ *')' kommt, wird dann vom Client gegenüber dem Server behandelt. – Shinobi881

Antwort

0

ich Sie vermuten könnte mit nginx eine intelligente Konfiguration zu tun, und es könnte eine URL der Domain/Board zu einer Umleitung der Domain/#/Board konvertieren, wenn der User-Agent als Bot anstelle eines Erfassungs typischer Benutzer.

0

Sie können Prerender.io Service verwenden. Kurz gesagt, müssen Sie Ihre Server-App oder Ihren Webserver mit dem Pre-Rendering-Dienst verbinden und wenig Setup durchführen (siehe Dokumentation). Danach werden Suchmaschinen und Crawler mit einem statischen (vorgerenderten) Inhalt bedient, während Benutzer die klassische React.js App (oder jede andere einzelne Seite) bekommen.

Es ist ein gehosteter Dienst mit freiem Tiere oder open source version

Verwandte Themen