2014-10-07 1 views
2

Я экспериментирую с Meteor и железом: маршрутизатор. Я сделал клонирование примеров из https://github.com/EventedMind/iron-router.git. Затем я записал cd-ed в образцы/базовый и выполнил обновление метеора и метеорит. Моя версия метеора 0.9.3.1Ошибка при использовании железа: маршрутизатор с Meteor 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 

Может ли кто-нибудь любезно сообщить, что я делаю неправильно?

Заранее благодарен.

ответ

6

Причина, по которой у вас возникла эта проблема, заключается в несоответствии между [email protected] (например, бета-версией 1.0) и используемой в настоящее время версией версии 0.9.x для железного маршрутизатора.

Старое обозначение для определения маршрута для http://localhost:3000/route, для шаблона route будет выглядеть следующим образом:

Router.route("route", { path : '/' }); 

Однако в новой версии, которая в настоящее время на GitHub на разви (который я предполагаю, что примеры на основе выглядит следующим образом):

Router.route("/", function() { 
    this.render("route"); 
}); 

проблема с использованием обозначений на дне приведет к ошибке, так как Couldn't find a template named "/" первые пары из Route.route теперь пути вместо шаблона.

Способ исправить это либо использовать версию предварительного железа маршрутизатора (строка версии можно найти в файле package.js на GitHub):

meteor remove iron:router 
meteor add iron:[email protected] 

Или использовать старые обозначая пример, связанный с выпуском на github вместо ветви devel, как этот: https://github.com/EventedMind/iron-router/tree/v0.9.2-rc0

+0

Спасибо, связка Акшат. Он работает так, как вы уже упоминали, когда меня понизили до железа: [email protected] – 3thanZ

+0

Я также сталкиваюсь с другой проблемой сейчас. После того, как я переместил свои шаблоны и определения Router.route в дочерние папки, например, в '/ client/core', приложение больше не направляет маршрут. – 3thanZ

+0

@ 3thanZ эта версия маршрутизатора на самом деле все еще работает. Это требует, чтобы маршруты были настроены на стороне сервера и на стороне клиента (корневая папка) для 404s для правильной работы. Если вы хотите использовать текущую версию железного маршрутизатора, вам нужно будет * понизить рейтинг до 0.9.3 – Akshat