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 谷歌获取很好,但看看它在 GWT 的谷歌 Fetch 中看到了什么:

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 回答