我已经按照collectionFS指南和其他几个stackoverflow问题[这里] [1],但我仍然在显示图像时遇到错误。显示损坏的图像图标,控制台打印“资源解释为图像,但使用MIME类型text / html传输:”。知道我能做些什么来解决这个问题吗?
我的代码如下:
HTML
<template name="fileList">
{{#each images}}
{{name}}
<img src="{{cfsFileUrl 'default1'}}">
<br />
{{else}}
No Files uploaded
{{/each}}
</template>
客户端JS
Template.fileList.helpers({
'images': function(){
return ImagesFS.find({}, {sort: {uploadDate:-1}});
}
});
服务器JS
if(Meteor.isServer){
ImagesFS.fileHandlers({
default1: function(options) { // Options contains blob and fileRecord — same is expected in return if should be saved on filesytem, can be modified
console.log('I am handling default1: ' + options.fileRecord.filename);
console.log(options.destination());
return { blob: options.blob, fileRecord: options.fileRecord }; // if no blob then save result in fileHandle (added createdAt)
}
});
}
答案 0 :(得分:6)
我通过以下方式手动添加cfs-public-folder包来实现此目的:
meteor add cfs-public-folder
现在文件显示在浏览器中,URL显示在
http://localhost:3000/cfs/<collectionFS name>/<imageId_fileHandler.ext>
的工作原理。
答案 1 :(得分:1)
cfs-public-folder
在0.9.x
上不再有效请使用:
.url()
像
MyColletionCFS.findOne().url()