0

heroku での prerender.io サーバーのセットアップに関するドキュメントとチュートリアルに従った後でも、GWT はまだデータなしで私のサイトをフェッチしてレンダリングしています。

prerender.io はページを適切にキャッシュしています。index.html にフラグメント メタ タグを設定し、app.js に $locationProvider.hashPrefix('!') を設定しました。

サイトを適切にクロールするために何が必要なのか、または GWT のレンダリングが見た目ほど適切ではないのか、誰か説明してもらえますか?

ありがとう!

エクスプレスサーバーはこちら

var gzippo = require('gzippo');
var express = require('express');
var app = express();
app.use(require('prerender-node').set('prerenderToken', 'MYTOKEN'));

var prerender = require('prerender-node').set('prerenderServiceUrl', 'http://blooming-brushlands-2690.herokuapp.com/');
app.use(prerender);
app.use(express.logger('dev'));
app.use(gzippo.staticGzip("" + __dirname + "/dist"));
app.listen(process.env.PORT || 5000);
4

1 に答える 1

0

TL;DR Google は問題なくフェッチしますが、GWT の Fetch as Google で何が表示されるかを確認するには:

YOURBASEURL/?_escaped_fragment_=/RESTOFTHEURL

結局のところ、GWT は prerender.io のホスティングで適切にクロールしていたので、自己ホスト型ビットを削除した後:

var prerender = require('prerender-node').set('prerenderServiceUrl', 'http://blooming-brushlands-2690.herokuapp.com/');
app.use(prerender);

残りの web.js は次のとおりです。

var gzippo = require('gzippo');
var express = require('express');
var app = express();
app.use(require('prerender-node').set('prerenderToken', 'MYTOKEN'));
app.use(express.logger('dev'));
app.use(gzippo.staticGzip("" + __dirname + "/dist"));
app.listen(process.env.PORT || 5000);

GWT は適切にフェッチしてレンダリングします。適切にフェッチおよびレンダリングされた結果を表示するには 、GWT の Fetch as Google でYOURBASEURL/?_escaped_fragment_=/RESTOFTHEURLを使用する必要があります。

これを手伝ってくれた Prerender.io の Todd に大いに感謝します。

于 2014-10-17T02:27:17.077 に答える