2016-09-13 6 views
1

Ich arbeite seit einiger Zeit mit React Router und habe hashHistory für das Routing verwendet. Irgendwann werde ich die App auf browserHistory umstellen, aber ich bin neugierig, warum Googles "Fetch as Google" -Funktion scheint nicht für etwas anderes als die root-Route (/) zu arbeiten. Es ist klar, dass etwas gerendert wird, nur die Routen, die nicht vom Server gehandhabt werden. (Bild unten)hashHistory, _escaped_fragment_, und Google

enter image description here

Ich sehe, dass Google deprecated their AJAX crawling scheme hat, was mich führt zu glauben, dass ich nicht mehr mit ?_escaped_fragment_= beschäftigen müssen, aber auch so, kann ich nicht bekommen Google alle anderen Routen zu machen.

Zum Beispiel ist die Website und die Lektionen sind unter www.learnphoenix.io/#/phoenix-chat/lessons aufgelistet. Die Funktion Fetch as Google von Google im Webmaster leitet jedoch zur Startseite um und rendert nur die Startseite. Die Verwendung von _escaped_fragment_ führt zum gleichen Ergebnis.

Gibt es eine Möglichkeit, dass Google meine Website mit hashHistory indizieren kann, oder muss ich nur akzeptieren, dass nur meine Homepage indiziert wird, bis ich zu browserHistory10 wechseln?

Antwort

1

Standardmäßig scheint Google URL-Fragmente (#) zu ignorieren. Nach diesem Artikel, der datiert werden kann, wird #! Ich werde Google sagen, dass die Fragmente verwendet werden können, um verschiedene kanonische Seiten zu definieren.

https://www.oho.com/blog/explained-60-seconds-hash-symbols-urls-and-seo

Es ist ein Versuch wert, obwohl Hashbang nicht von ReactRouter unterstützt wird, wieder, weil sein sollte als veraltet sein.

Eine bessere Option könnte sein, nur in den sauren Apfel beißen und browserHistory (PushState) in Ihrem Reagieren-Router verwenden. Das Problem dabei ist, dass wenn Sie eine statische Server-lose App ausführen, Pfade wie /phoenix-chat/lessons einen 404 zurückgeben. In AWS gibt es auch einen Hack. Legen Sie Ihre 404-Seite als App-Indexseite fest.

http://blog.boushley.net/2015/10/29/html5-deep-link-on-amazon-s3/

fühlt sich schmutzig, aber auch hier einen Versuch wert. Hoffentlich gibt es in dieser Antwort etwas Wertvolles für dich!

+0

Ja, das ist wahrscheinlich so gut wie wir bekommen werden. Ich denke, bei Apps mit einer einzelnen Seite muss man wirklich sicherstellen, dass es für Google eine einzige Seite ist. – samcorcos

Verwandte Themen