0

我的应用程序在本地完全正常运行。但是,当我部署它时,我在应该访问集合 Posts 的页面上的 javascript 控制台中收到以下错误。

Exception from Deps recompute: ReferenceError: Posts is not defined
at Object.route.data.posts

这是我正在使用的路由器 javascript 文件,它将 Posts 传递给模板 postsLists,该模板在部署时不会加载。


Router.configure({
          layoutTemplate: 'layout',
          loadingTemplate: 'loading',
          waitOn: function() { console.log('waiting'); return [Meteor.subscribe('posts'), Meteor.subscribe('files')]; }
        });

        Router.map(function(){
            this.route('postPage', {
                path:'/posts/:_id',
                data: function() {return Posts.findOne(this.params._id); }
            });

            this.route('welcome', {path: '/'});

            this.route('postsList', {path: '/List',
            data: {
                posts: function () {
                return Posts.find({}, {sort: {submitted: -1}});
              }
            }});

            this.route('postSubmit',{
                path:'/submit'
            });
            this.route('yourPosts',{
                path:'/yourposts'
            });
            this.route('officialPosts',{
                path:'/featured'
            });
            this.route('postEdit', {
            path: '/posts/:_id/edit',
            data: function() { return Posts.findOne(this.params._id); }
          });
        });

        var requireLogin = function(){
            if(! Meteor.user()){
                this.render('accessDenied');
                this.stop();
            }
        };

        Router.before(requireLogin, {only: ['postSubmit','postsList','yourPosts','officialPosts','postEdit']});

该网站也可通过fed.meteor.com访问。

提前致谢。

4

1 回答 1

1

您有一个 javascript 错误,当它显示 .js 时,您可以在 js 控制台中看到它Uncaught TypeError: Object #<Object> has no method 'describe'

在生产模式下,文件是连接的,所以当你遇到这样的错误时,它下面的代码根本不会执行。所以这种方式 Posts 没有定义。

您在本地仍然有错误,但文件没有连接,因此一个错误不会影响其他文件,并且错误不会那么明显。

您必须修复其他错误才能运行其余代码。

不错的网站顺便说一句。

于 2014-02-08T11:14:32.330 回答