Javascript 创建meteor.js网站地图
网站地图很酷。如果我想为我的流星计划做一个,我想我可以做以下一个:Javascript 创建meteor.js网站地图,javascript,meteor,Javascript,Meteor,网站地图很酷。如果我想为我的流星计划做一个,我想我可以做以下一个: 硬编码sitemap.xml文件并放入/public/文件夹。不是动态的,但谷歌很容易找到。对于子页面很少的应用程序来说,这可能已经足够了 (根本没有尝试过)使用meteor路由器在/sitemap.xml(?)创建一个动态站点地图,并将其输出为xml。动态的,但是google很难找到它,因为它是动态加载的(可能是使用spiderable包?) 但这两种情况对我都不是很满意。我希望它是动态的,但存储在一个(最好是)静态文件,谷歌
最好的方法是什么?如果有一种方法可以使用客户端路由器动态生成站点地图,那么Meteor router也可以 你需要和meteor的http。流星路由器有一个特权,看起来你已经有了 因此,第一步是使用服务器端路由为该sitemap.xml创建路由:
Meteor.Router.add('sitemap.xml', function() {
//get sitemap data (below)
return generated_sitemap;
});
以及生成站点地图的功能:
我们需要router.js
,不幸的是,它只在客户端上运行。所以我们需要用meteor.http获取它。router.js
文件基本上包含Meteor.router.add
路由器代码位。将url调整到router.js
文件可能存储的位置
routerdata = Meteor.http.get("http://localhost:3000/client/router.js").content
然后,我们需要从那里解析路由器数据(确保使用var,这样作用域就不会破坏实际的路由器)
服务器端js
Meteor.Router.add('/sitemap.xml', function() {
routerdata = Meteor.http.get("http://localhost:3000/client/router.js").content
var Meteor = {};
Meteor.Router = {add:function(input) {return input}};
//drag the data out of the routerdata, eval is quick and dirty but you could shackle it down further
routers = eval(routerdata);
//now generate the sitemap.xml data
xmldata = '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
for(var url in routers) {
xmldata+="<url>\n";
xmldata+="<loc>"+url+"</loc>\n";
xmldata+="<lastmod>2013-03-03</lastmod>\n";
xmldata+="<changefreq>daily</changefreq>\n";
xmldata+="<priority>0.8</priority>\n";
xmldata+="</url>\n";
}
xmldata+="</urlset>";
return xmldata;
});
Meteor.Router.add('/sitemap.xml',function(){
routerdata=Meteor.http.get(“http://localhost:3000/client/router.js1.内容
var Meteor={};
Meteor.Router={add:function(input){returninput}};
//将数据从routerdata中拖出,eval既快又脏,但您可以进一步限制它
路由器=eval(路由器数据);
//现在生成sitemap.xml数据
xmldata='';
for(路由器中的var url){
xmldata+=“\n”;
xmldata+=“”+url+“\n”;
xmldata+=“2013-03-03\n”;
xmldata+=“每日\n”;
xmldata+=“0.8\n”;
xmldata+=“\n”;
}
xmldata+=”;
返回XML数据;
});
您可能需要进一步定制它,使其符合您的需要。我不能说我已经尝试过上述方法,我对如何优化使用网站地图并不十分熟悉,但这可能会让你有一个开始这个软件包看起来很有希望:
事实上,我昨天也开始写类似的东西,不过我确实想要一个sitemap.xml的实际文件(对谷歌来说感觉最安全),并让node.js fs模块来编写文件和所有内容。谢谢你的回复,如果有什么值得分享的,我会发回这里。