创建一个meteor.js站点地图
Create a meteor.js sitemap
站点地图很酷。如果我想要一个流星项目,我想我可以做下面的一个:
- 硬编码sitemap.xml文件并放入/public/文件夹。不是动态的,但很容易被谷歌找到。对于子页面较少的应用程序可能足够了。 使用流星路由器在/sitemap. XML(?)创建一个动态站点地图,并将其输出为XML。动态的,但不会很容易为谷歌找到,因为它是动态加载的(也许与蜘蛛包?)
但我都不太满意。我希望它是动态的,但仍存储在一个(最好)静态文件,很容易找到谷歌。或者类似的东西
最好的方法是什么?
如果有一种方法可以使用客户端路由器来动态生成站点地图,那么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;
});
您可能需要进一步定制它,以确切地满足您的需求。我不能说我已经尝试过了,我不是很熟悉如何优化使用站点地图,但它可能会让你开始
这个包看起来很有希望:
https://atmosphere.meteor.com/package/sitemaps相关文章:
- Meteor JS中代码的重复使用部分
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- Meteor.js可以'找不到语义:ui包
- 在Meteor js中生成PDF报告
- Meteor.js只更新一个参数,而不是整个集合
- Meteor.js Cordova错误:错误白名单拒绝
- Meteor js-控制台显示'未定义'即使返回结果
- Meteor.js:<脚本>标签不't在<身体>
- Meteor JS Router.go重定向到同一页面
- Meteor JS自动表单自定义输入-没有当前视图
- Mongo操作符$pull不工作(Meteor.js)
- Meteor.js只影响新插入的子模板
- MongoDB 无法将$addToSet应用于 Meteor JS 中的非数组
- Meteor JS在服务器发布方法中获取请求的url
- Meteor JS Jade模板无法按预期工作
- path没有方法'parse'在Meteor JS中
- Meteor JS错误”;ReferenceError:X未定义”;
- 在Meteor.js中运行后台任务
- 使用助手METEOR-JS调用Facebook照片
- Meteor.js中的简单时钟或如何重新加载模板