当我像这样开始流星时:
meteor --production
我的应用程序应该是一个空白页面,并且我的浏览器控制台中显示以下错误:
No such function: navClassName
但是,如果我像这样开始流星:
meteor
我的应用运行没有问题。
可能是什么问题?生产期间是否需要以不同方式加载流星模板助手?
相关文件: 客户机/导航/ navigation.html:
<template name="navigation">
<ul class="nav navbar-nav">
<li class="{{navClassName 'home'}}">
<a href="{{pathFor 'home'}}">home</a>
</li>
<li class="{{navClassName 'blog'}}">
<a href="{{pathFor 'blog'}}">Blog</a>
</li>
</ul>
</template>
的客户机/导航/ navigation.js:
Template.navigation.helpers({
'navClassName': function (route) {
if (Router.current()) {
return Router.current().route.options.navbarSelected.search(route) != -1 ? "active" : "";
}
}
});
答案 0 :(得分:0)
将 navigation.js 移动到 client / lib 目录,或者至少移动Template.navigation.helpers
部分并修复/删除导致错误的任何其他JavaScript。
我希望我能详细说明,但这个问题似乎与文件加载顺序有关。首先加载 lib 目录中的文件,然后移动帮助程序解决了我的问题。
可以在documentation中找到典型的文件结构。请参阅示例文件结构中的注释,了解一些特殊行为。
虽然这可能对您有用,但最简单的依赖关系控制最容易通过packages实现,如SO this other answer中所述。对于客户端和服务器都应该可用的代码,这是特别必要的。