2013-10-01 3 views
0

Я использую collectionfs для хранения файлов в своем приложении.meteor mrt collectionfs deploy

копировать + вставить большую часть кода риого, снабженный collectionfs в мое приложение, а также добавил

{{cfsFileUrl "default1"}} 

к моему списку файлов. Все работает на моей локальной машине.

Проблема возникает, когда я раскрываю к ??? meteor.com с

mrt deploy ???.meteor.com 

можно загружать и загружать изображения, а также URL отображается от cfsFileUrl,

НО:.

Когда я получить доступ к этому URL, я получаю ошибки 404.

Мой код: client.html

<body> 
    {{loginButtons}} 
    {{>queueControl}} 
    <br>ta 
    <br> 
    {{>fileTable}} 
</body> 

<template name="queueControl"> 
    <h3>Select file(s) to upload:</h3> 
    <input name="files" type="file" class="fileUploader" multiple> 
</template> 

<template name="fileTable"> 
    {{#each files}} 
    {{cfsDownloadButton "ContactsFS" class="btn btn-primary btn-mini" content=filename}}<br> 
     <img src="{{cfsFileUrl "default1"}}"> 
    {{/each}} 
</template> 

client.js

ContactsFS = new CollectionFS('contacts', { autopublish: false }); 

Deps.autorun(function() { 
    Meteor.subscribe('myContactsFiles'); 
}); 

Template.queueControl.events({ 
    'change .fileUploader': function (e) { 
     var files = e.target.files; 
     for (var i = 0, f; f = files[i]; i++) { 
      ContactsFS.storeFile(f); 
     } 
    } 
}); 

Template.fileTable.files = function() { 
    //show all files that have been published to the client, with most recently uploaded first 
    return ContactsFS.find({}, { sort: { uploadDate:-1 } }); 
}; 

server.js

ContactsFS = new CollectionFS('contacts', { autopublish: false }); 

Meteor.publish('myContactsFiles', function() { 
    if (this.userId) { 
     return ContactsFS.find({ owner: this.userId }, { limit: 30 }); 
    } 
}); 

ContactsFS.allow({ 
    insert: function(userId, file) { return userId && file.owner === userId; } 
}); 

ContactsFS.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) 
    } 
}); 

ответ

Смежные вопросы