1

我在让 PrerenderIO 在我的应用程序上工作时遇到问题。我正在跑步meteor@1.3.5.1prerender-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喜欢这样

{
"PrerenderIO": {
    "token": "wi7DqaiBlaBlaBlaqTGmT",
    "host": "http://locallhost:3000/"
},
"public":{
    "ga": {
        "id": "UA-XXXXXXXXX-1"
    }   
}
}

当我在本地主机上启动服务器时,我在日志中得到了这个

Prerender Token: wi7DqaiBlaBlaBlaqTGmT

所以,我有 PrerenderIO 的本地服务器正在运行port:3033,当我运行时http://localhost:3000/?_escaped_fragment_=,它需要很长时间,然后返回“找不到本地主机”并在我的流星服务器日志上记录一些错误。

此外,当我将应用程序部署到我的主机并访问我的 prerender.io 仪表板时,我仍然看到我尚未安装我的 prerender 令牌的警告。

当我访问时,http://localhost:3033/http://localhost:3000我得到没有图像的缓存页面

注意我已经尝试了以下软件包dfischer:prerenderiodferber:prerender但同样的事情。

4

1 回答 1

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

于 2016-07-27T02:49:26.657 回答