流星在生产中没有这样的功能错误

时间:2015-06-26 04:11:40

标签: meteor

当我像这样开始流星时:

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" : "";
    }
  }
});

1 个答案:

答案 0 :(得分:0)

navigation.js 移动到 client / lib 目录,或者至少移动Template.navigation.helpers部分并修复/删除导致错误的任何其他JavaScript。

我希望我能详细说明,但这个问题似乎与文件加载顺序有关。首先加载 lib 目录中的文件,然后移动帮助程序解决了我的问题。

可以在documentation中找到典型的文件结构。请参阅示例文件结构中的注释,了解一些特殊行为。

虽然这可能对您有用,但最简单的依赖关系控制最容易通过packages实现,如SO this other answer中所述。对于客户端和服务器都应该可用的代码,这是特别必要的。