PrerenderIO无法在我的MeteorApp上工作

PrerenderIO not working on my MeteorApp

本文关键字:MeteorApp 工作 我的 PrerenderIO      更新时间:2023-09-26

我在应用程序上使用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 liiks喜欢这个

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

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

Prerender Token: wi7DqaiBlaBlaBlaqTGmT

因此,我让PrerenderIO的本地服务器在port:3033上运行,当我运行http://localhost:3000/?_escaped_fragment_=时,它需要很长时间,然后返回"localhost not found",并在我的流星服务器日志中记录一些错误。

此外,当我将应用程序部署到我的主机上,并访问我的prerender.io面板时,我仍然会看到警告,说我没有安装我的preender令牌。

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

注意我试过以下包dfischer:prerenderiodferber:prerender,但都是一样的。

在服务器的某个地方,您需要导入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,因为您是通过调用协议方法在服务器中设置http的。您的主机url应该只是:localhost:3000