有谁能告诉我为什么会发生这种错误以及如何解决? 当我重新加载页面(cmd + r)时,图像请求工作正常。
来自浏览器控制台的错误:
http://xxxxx.meteor.com/cfs/files/images2/aEaqKMjLQZcDPHLS8 503(服务不可用)
会发生什么:
上传图片的代码
Template.profileedit.events({
'change .myFileInput': function(event, template) {
var files = event.target.files;
for (var i = 0, ln = files.length; i < ln; i++) {
Images.insert(files[i], function (err, fileObj) {
var userId = Meteor.userId();
var imagesURL = {
"profile.image": "/cfs/files/images2/" + fileObj._id
};
Meteor.users.update(userId, {$set: imagesURL});
});
}
}
模板助手
Template.profileedit.helpers({
imgsrc: function() {
var user = Meteor.users.findOne({"_id" : Meteor.userId()});
return Meteor.user().profile.image;
}
});
显示图片的HTML:
<template name="profileedit">
<img src="{{imgsrc}}" style="width:400px" >
</template>
其他内容
本地和meteor.com上的问题都是一样的 不安全和自动发布是活跃的(这只是学习步骤)
由于 的Jesper
答案 0 :(得分:2)
我想你会遇到Mongo尚未准备好检索对象的问题。我的猜测是,在您的图像实际可用于检索之前发生了被动更新,但是当您点击刷新时它就在那里并准备好被检索,这就是为什么可以解决这个问题。
有几种方法可以解决这个问题。例如:https://github.com/CollectionFS/Meteor-CollectionFS基本上允许您设置“等待”图像,该图像将在您的文件未就绪时显示,并在您的图像设置为检索时进行反应性更新。您也可以自己执行此操作,并显示您的实现。