現在、CollectionFS からアップロードされたファイルを表示し、CollectionFS の URL リターンを使用して表示するアプリケーションを作成しています。ローカルで画像が読み込まれ、表示されます。ただし、アプリケーションを meteor.com にデプロイすると、画像の URL が機能しません。イメージ パスが見つからないことを示すコンソール。
CollectionFS は、私のイメージに対して次の URL を返します: /cfs/contacts/75erhMtuwjn66fQH3_default1.png
アプリをローカルに展開すると、.html で使用する画像を確認できます: img src="/cfs/contacts/75erhMtuwjn66fQH3_default1.png"
CollectionFS によって返される特定のコードは .html ファイルにあり、クライアント側で呼び出されています。
{{cfsFileUrl "defaultHandler" fileId=fileId collection="Collection"}}
ローカルでは、このアドレスを HTML にアップロードされた画像のソースとして使用します。
ローカルホスト:ポート/cfs/連絡先/75erhMtuwjn66fQH3_default1.png
しかし、同じ手順を使用してデプロイされたアプリの画像を表示しようとすると、url not found のエラーが返されます。
http://host.meteor/cfs/contacts/75erhMtuwjn66fQH3_default1.png.com
クリック イベントのクライアント側 .js にファイルが追加されます。
'change .fileUploader': function (e) {
var files = e.target.files;
var fileName = files[0].name;
for (var i = 0, f; f = files[i]; i++) {
var k = ContactsFS.storeFile(f);
Session.set('fileID', k);
}}
Server side:
ContactsFS.fileHandlers({
default1: function(options) {
return {
blob: options.blob,
fileRecord: options.fileRecord // if no blob then save result in fileHandle (added createdAt)
};
}});
Then I can call the url in html with the given function from collectionFS documentation:
{{cfsFileUrl "default1" fileId=fileId collection="ContactsFS"}}
繰り返しますが、問題は URL を生成していません。ローカルでも展開されたアプリでも、URL が表示されます。問題を引き起こしている画像タグのソースとして画像のURLを使用しています。