我有一个让PrerenderIO在我的应用上工作的问题。
我正在运行meteor@1.3.5.1
和prerender-node
,我已经在我的server/prerenderio.js
中设置了此代码
Meteor.startup( function(){
const prerenderio = Npm.require('prerender-node');
const settings = Meteor.settings.PrerenderIO;
console.log(settings);
if (settings && settings.token && settings.host) {
console.log('This is true');
prerenderio.set('prerenderToken', settings.token);
prerenderio.set('host', settings.host);
prerenderio.set('protocol', 'http');
WebApp.rawConnectHandlers.use(prerenderio);
}
});
我的settings.json
liiks就像这样
{
"PrerenderIO": {
"token": "wi7DqaiBlaBlaBlaqTGmT",
"host": "http://locallhost:3000/"
},
"public":{
"ga": {
"id": "UA-XXXXXXXXX-1"
}
}
}
当我在本地主机上启动服务器时,我会在日志中找到它
Prerender Token: wi7DqaiBlaBlaBlaqTGmT
所以,我在port:3033
上运行PrerenderIO的本地服务器,当我运行http://localhost:3000/?_escaped_fragment_=
时,它需要很长时间然后返回“找不到localhost”并在我的流星服务器日志上记录一些错误。
此外,当我将应用程序部署到我的主机,并访问我的prerender.io仪表板时,我仍然看到警告我没有安装我的预呈现令牌。
当我访问http://localhost:3033/http://localhost:3000
时,我获得了没有图片的缓存页面
请注意我已尝试过以下软件包dfischer:prerenderio
和dferber:prerender
,但同样的事情。
答案 0 :(得分:0)
在服务器的某个地方,您需要导入Meteor来获取私有设置,您需要从节点模块导入prerenderIO,从meteor / webapp导入WebApp。设置配置文件以进行预渲染,如下所示:
import prerenderIO from 'prerender-node';
import { Meteor } from 'meteor/meteor';
import { WebApp } from 'meteor/webapp';
Meteor.startup(() => {
const settings = Meteor.settings.private.PrerenderIO;
if (settings && settings.token && settings.host) {
prerenderIO.set('prerenderToken', settings.token);
prerenderIO.set('host', settings.host);
prerenderIO.set('protocol', 'http');
WebApp.rawConnectHandlers.use(prerenderIO);
}
});
此外,在您的设置中,您不需要在域字符串中包含http,因为您通过调用协议方法在服务器中设置它。您的主机网址应该是:localhost:3000