gpt4 book ai didi

meteor - Iron Router 找不到名为 "layout"或 "layout"的模板

转载 作者:行者123 更新时间:2023-12-02 01:09:12 25 4
gpt4 key购买 nike

在转换到 Meteor 的新文件结构后一整天都出现奇怪的错误。铁路由器似乎坏了。

我有 layout.html 和 js 文件。也以适当的小写形式命名。

完整错误:

Couldn't find a template named "layout" or "layout". Are you sure you defined it?

我的文件是:

  • client/main.html 和 main.js --> <head></head>在这里定义

  • import/ui/layouts --> 包含 layout.html 和 layout.js <body></body>在这里定义。

  • import/startup/both --> 包含路由器.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();
}
}
});

当我控制台日志 typeof(Template.layout) ,它返回未定义。

所以当我移动两个layout.htmllayout.js直到客户端文件夹,连同main.html ...错误消失但仍然显示空白页,但给出了一个名为“settings”的页面丢失的错误(但 settings.html 和 js 文件都存在于 import/ui/pages 中。但是上面的 console.log 返回了一个对象。奇怪。

附言:

我试过了 import '/imports/startup/client';在服务器文件夹中的 main.js 文件中,使上面的 htmls 工作。我得到了 'Error: Cannot find module '/imports/startup/client' .所以我只是先注释掉它来解决上面的问题。

我还添加了 import '../imports/ui/layouts/layout.html';import '../imports/ui/pages';在客户端 main.js 中。但是错误说 Cannot find module '../imports/ui/pages'并且设置对系统仍然不可见。

任何人都可以阐明这一点吗?谢谢!

最佳答案

将您的 blaze html 文件留在 /client 中 - html 文件无法按原样导入。您的 js 文件可以迁移到 imports 目录结构,但您必须从每个文件中导出函数,然后将它们导入到您需要使用它们的地方。就我个人而言,我不确定将 blaze 项目迁移到新结构是否值得,如果您使用的是 React,它会更有用。

关于meteor - Iron Router 找不到名为 "layout"或 "layout"的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45903633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com