我的应用程序在本地完全正常运行但是,当我部署它时,我在javascript控制台上收到以下错误,在该页面上集合Posts是假设要访问的。
Exception from Deps recompute: ReferenceError: Posts is not defined
at Object.route.data.posts
这是我正在使用的路由器javascript文件,它将帖子传递给模板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访问。
先谢谢。
答案 0 :(得分:1)
你有一个javascript错误,你可以在js控制台中看到它Uncaught TypeError: Object #<Object> has no method 'describe'
。
在生产模式下,文件被连接起来,所以当你有这样的错误时,它下面的代码根本不会执行。所以Posts没有定义。
您仍然在本地出现错误,但文件没有连接在一起,因此一个错误不会影响其他文件,错误也不会那么明显。
您必须修复其他错误才能运行其余代码。
不错的网站顺便说一句。