【发布时间】:2017-08-27 09:43:11
【问题描述】:
在转换到 Meteor 的新文件结构后,一整天都出现奇怪的错误。 Iron-router似乎坏了。
我确实有 layout.html 和 js 文件。名称也使用正确的小写。
完整的错误:
找不到名为“layout”或“layout”的模板。你确定你 定义了吗?
我的文件是:
client/main.html 和 main.js -->
<head></head>在这里定义import/ui/layouts --> 包含 layout.html 和 layout.js
<body></body>在这里定义。- 导入/启动/两者 --> 包含 router.js
路由器文件:
Router.configure({
layoutTemplate : 'layout',
loadingTemplate : 'loading',
notFoundTemplate : 'notFound',
waitOn: function() {
return [
Meteor.subscribe('allUsers'),
Meteor.subscribe('otherUser')
];
}
});
Router.route('/',{
name: 'home',
onBeforeAction: function () {
if( Meteor.userId() ){
Router.go('/new');
} else {
this.next();
}
}
});
当我 console.log typeof(Template.layout) 时,它返回未定义。
因此,当我将 layout.html 和 layout.js 连同 main.html 一起移动到客户端文件夹时...错误消失但仍然显示空白页,但给出了一个名为“设置”的页面丢失的错误(但是settings.html和js文件都存在于import/ui/pages中。但是上面的console.log返回了一个对象。奇怪。
PS:附注:
我在服务器文件夹的 main.js 文件中尝试了 import '/imports/startup/client'; 以使上述 html 工作。我得到了'Error: Cannot find module '/imports/startup/client'。所以我只是先将其注释掉以解决上述问题。
我还在客户端 main.js 中添加了import '../imports/ui/layouts/layout.html'; 或import '../imports/ui/pages';。但是错误显示Cannot find module '../imports/ui/pages' 并且系统仍然看不到设置。
任何人都可以对此有所了解吗?谢谢!
【问题讨论】:
标签: meteor meteor-blaze