MeteorJS支持spiderable,还是另一种让应用程序可爬行的解决方案?

MeteorJS支持spiderable,还是另一种让应用程序可爬行的解决方案?,meteor,phantomjs,iron-router,Meteor,Phantomjs,Iron Router,目前,我们正在使用一个meteor应用程序和iron:router包,以及spiderable和phantomjs,使这个应用程序可以被google抓取 在我们的特殊情况下,我们有一些路由,我们调用Meteor方法,这些方法在我们将正确的模板呈现到布局之前是异步运行的 在这些路由上测试spiderable时,模板将永远不会被呈现,而我们的“加载”模板将是呈现的模板 我们正在使用/?\u转义\u片段进行测试_= 现在,我们正在寻找一种解决方案来告诉spiderable页面已准备就绪或未准备就绪,以

目前,我们正在使用一个meteor应用程序和iron:router包,以及spiderable和phantomjs,使这个应用程序可以被google抓取

在我们的特殊情况下,我们有一些路由,我们调用Meteor方法,这些方法在我们将正确的模板呈现到布局之前是异步运行的

在这些路由上测试spiderable时,模板将永远不会被呈现,而我们的“加载”模板将是呈现的模板

我们正在使用/?\u转义\u片段进行测试_=

现在,我们正在寻找一种解决方案来告诉spiderable页面已准备就绪或未准备就绪,以便我们可以控制何时必须呈现页面

Router.route('/awesome-route', function(){

  // This is how it could look to tell spiderable that it has to wait
  Spiderable.pleaseWait();

  // Render the loading template until our route is ready
  this.render('loading');

  // Waiting for the response of our method
  Meteor.call('data', function(err, resp){
    this.render('awesome', {
      data : resp
    });
    // This is how it could look to tell spiderable we are ready / always be polite
    Spiderable.thanksForWaiting_WeAreReady();
  });
}, {
  name : 'awesome'
});
现在打开localhost:3000/awesome route时?\u转义\u片段\u=我们将只看到laoding模板


我们的另一个选择是:谷歌抓取meteor应用程序还有其他选择吗?

由于spiderable将在服务器上使用phantomjs预渲染您的模板,因此不需要像
SpiderablePleaseWaitforLittleBitmore\u Please这样的特殊方法

你可以对你的
iron:router
说模板还没有呈现。使用
onBeforeAction
hook:

Router.route('/awesome-route', {
  name : 'awesome',
  template: "awesome",
  loadingTemplate: "loading",
  onBeforeAction: function(){
      var next = this.next;
      Meteor.call('data', function(err, resp){
         next();
      });
  }
});