我正在试验流星和铁:路由器。我git克隆了https://github.com/EventedMind/iron-router.git的例子。然后我进入了samples / basic,并运行了流星更新和流星。我的流星版本是0.9.3.1
当我导航到网站时,控制台中显示错误,页面为空。错误如下:
Exception from Tracker recompute function: Error: Couldn't find a template named "/" or "". Are you sure you defined it?
at null._render (http://localhost:3000/packages/iron_dynamic-template.js?32038885cb1dad7957291ffebfffcb7f8cd57d20:239:17)
at doRender (http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1853:25)
at http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1795:16
at Object.Blaze._withCurrentView (http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:2029:12)
at viewAutorun (http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1794:18)
at Tracker.Computation._compute (http://localhost:3000/packages/tracker.js?192a05cc46b867dadbe8bf90dd961f6f8fd1574f:288:36)
at new Tracker.Computation (http://localhost:3000/packages/tracker.js?192a05cc46b867dadbe8bf90dd961f6f8fd1574f:206:10)
at Object.Tracker.autorun (http://localhost:3000/packages/tracker.js?192a05cc46b867dadbe8bf90dd961f6f8fd1574f:476:11)
at Blaze.View.autorun (http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1793:19)
at http://localhost:3000/packages/blaze.js?7b7ff7ee2ccdccd85a1ad0d8dc9d96193e29e8b0:1847:10 debug.js:41
有人可以建议我做错了什么吗?
提前致谢。
答案 0 :(得分:6)
您遇到此问题的原因是iron-router@1.0.0-pre-x
(如1.0 for Beta)与当前使用的0.9.x版铁路由器之间存在差异。
为模板http://localhost:3000/route
定义route
路线的旧表示法如下:
Router.route("route", { path : '/' });
然而,在新版本中,目前在devel上的github上(我假设示例基于如下):
Router.route("/", function() {
this.render("route");
});
问题是使用底部的符号会导致错误Couldn't find a template named "/"
,因为Route.route
的第一个参数现在是路径而不是模板。
解决这个问题的方法是使用预发布版本的铁路由器(版本字符串可以在github上的package.js文件中找到):
meteor remove iron:router
meteor add iron:router@1.0.0-pre3
或者通过查看与github上的发行版捆绑在一起的示例而不是devel
分支来使用旧表示法,如下所示:https://github.com/EventedMind/iron-router/tree/v0.9.2-rc0