[英]Create a meteor.js sitemap
站点地图很棒。 如果我想要一个用于流星项目,我想我可以执行以下一项操作:
但是,两者都不令我满意。 我希望它是动态的,但要存储在一个(最好是)静态文件中,该文件很容易被Google找到。 或类似的东西。
最好的方法是什么?
如果有一种方法可以使用客户端路由器动态生成站点地图,则可能使用Meteor Router
您需要流星路由器和流星的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;
});
您可能需要对其进行自定义,以使其完全符合您的要求。 我不能说我已经尝试过上述即时消息,但我不太了解如何最佳使用站点地图,但这可能会让您有所收获
这个软件包看起来很有希望:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.