[英]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.