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