Iron Router BaseController 部署时未定义?

Iron Router BaseController undefined when deployed?

我的应用程序在本地运行良好,但是当我在 xxxx.meteor.com 上部署它时,我得到的是 Iron Router "Organize your Meteor application" 初始页面。此外,一旦浏览器点击第一个 Basecontroller.extend({,我就会得到一个 ref。错误 "BaseController is not defined"。也许与特定于部署的路由控制器的加载顺序有关?这是我的代码:

client/main/routes.js

Router.route('/', {
    name: 'splash',
    controller: 'SplashController'
});

Router.route('/login', {
    name: 'login',
    controller: 'LoginController'
});

Router.route('/home', {
    name: 'home',
    controller: 'HomeController'

//...etc

client/main/controller.js

BaseController = RouteController.extend({
    layoutTemplate: 'layout',
    requiresAuth: false,
    publicOnly: false,
    // Called before anything happens
    onBeforeAction: function () {
        if (!Meteor.userId() && this.requiresAuth) {
            return this.redirect('/login');
        }
        if (Meteor.userId() && this.publicOnly) {
            return this.redirect('/home');
        }
    }
});

客户端/(所有模板)/controller.js

TemplateController = BaseController.extend({
    requiresAuth: false,
    publicOnly: true,
    action: function () {
        this.render('template', {
            to: 'content'
        });
    }
});

问题仅在加载中。因此,应始终首先加载的代码,请尝试放在 <app-root>\lib 目录中。

像你的情况一样,将 route.jscontroller.js 放在 lib 目录中。

阅读有关 meteor 加载顺序的更多信息 - http://docs.meteor.com/#/full/structuringyourapp