Node.js 奥斯特罗:文件包正在工作,但可以’;t访问图像

Node.js 奥斯特罗:文件包正在工作,但可以’;t访问图像,node.js,meteor,angular-meteor,Node.js,Meteor,Angular Meteor,我在我的应用程序中得到了ostrio:files包,因此我的图像正在上传到服务器(据我所知),数据库中有它们的引用,但我不知道如何实际提供它们。例如,我今天早上上传了一张图片。DB包含原始名称及其当前存在的文件路径: assets/app/uploads/Images/twLXDmCTiqyGy4Yq7.jpg 问题是,当我把它放到url中时,它只会返回我的应用程序的主页。我尝试将上载目录更改为/images/,但仍然存在相同的问题。在Meteor的文档中,我似乎找不到一个关于如何打开图像路径的

我在我的应用程序中得到了
ostrio:files
包,因此我的图像正在上传到服务器(据我所知),数据库中有它们的引用,但我不知道如何实际提供它们。例如,我今天早上上传了一张图片。DB包含原始名称及其当前存在的文件路径:

assets/app/uploads/Images/twLXDmCTiqyGy4Yq7.jpg

问题是,当我把它放到url中时,它只会返回我的应用程序的主页。我尝试将上载目录更改为
/images/
,但仍然存在相同的问题。在Meteor的文档中,我似乎找不到一个关于如何打开图像路径的明确答案,除了在构建包时包含它们之外,但这违背了用户输入的目的

我还注意到,我的应用程序中的
programs/web.browser/program.json
文件似乎控制了允许可见的内容,但理想情况下,我只想打开我的/images目录来查看任何图像(当然,只有直接路径-我不想要目录列表)。有可能吗

此外,我在中找到了
config.public
configuration选项,并将其设置为true,还设置了
storagePath
downloadRoute
路径。我设置的路径来自我服务器的底部(使用/作为路径的开始),但我仍然无法查看我上传的任何图像-它只是加载我应用程序的默认主页

----编辑----

添加更多详细信息以帮助解决此问题

我在
/imports/api/images.js
文件中设置了文件集合,如下所示:

export const Images=新文件集合({

稍后,在另一个文件中,我导入该api并使用
Images.insert({
然后使用
upload.on)进行上传('end',函数
以将其上载。我猜这就是我缺少将文件保存到文件系统的地方?希望这有助于并为调试提供更多细节。此外,当我有
FileCursor
对象时,我会尝试
链接()
方法,它只返回
链接不是函数

---编辑2---


正如@Rolljee所指出的,我的项目中还有其他软件包,但我没有删除。它们干扰了我的项目,导致项目无法正常运行。

通常静态资产在应用程序结构中是公开的,因此public/images/picture.jpg在HTML中以/images/picture.jpg的形式提供

不幸的是,您无法将上载的文件保存到此目录(您可能知道),因此需要另一种策略

你不能说你的问题是在开发还是在生产中

示例代码使用
-这意味着程序包将根据配置为您提供一个url。这不起作用吗?如果您正在制定自己的url,并且要部署到mobile,则url将需要是绝对的,而不是相对的,因为移动应用程序在本地资产的本地web服务器上运行的方式


这可能还不是一个完整的答案,但如果您能提供更多信息,我们可以在那里获得这些信息

当您在FileCollection集合中存储一条新记录时,它会自动创建link()方法,您可以使用该方法获取为您的文件提供服务的路径

你应该可以这样得到它:

const theUrl = MyFilesCollection.findOne(someId).link();
也可以创建类似您自己的,它遵循以下简单的命名约定:

link: `${Meteor.absoluteUrl() + file._downloadRoute}/${file._collectionName}/${file._id}/original/${file._id}.${file.extension}`,

您是将文件存储在驱动器上还是使用gridfs或collectionFS?它是否也会发生在本地开发或部署上,还是两者都会发生?我想这两种情况都会发生…我使用FileCollection和ostrio:文件来存储映像,但我似乎无法访问它们。我无法访问我的开发环境或生产环境中的映像(在url的/images/picture.jpg类型)除非我在启动meteor之前将其放入我的public/images/picture.jpg中。此外,当我使用ostrio:files(文件集合)获取图像时,我得到的图像对象没有文档中建议的
link
fileUrl
的任何方法。也许我做了一些完全错误的事情,并得到了错误类型的图像对象?好吧,所以我进一步研究了这一点,即使我有一个FileCursor,我仍然没有
link()
方法。我尝试了你建议的另一种方法,它创建了一个有效的链接,但当我去那里时,我只是得到了一个未找到的
文件:(
,但至少我得到了一些东西。所以可能它没有实际上传?这是在我的本地上,但我在上传图像时不会在控制台中显示任何错误。使用.link()方法不执行任何操作?没有类似.link()的错误不是一个函数吗?你能提供一个上传文件的例子吗?如果可能的话,还有你用来创建集合的配置吗?只有在文件夹中真正创建了该文件后,才会将该文件添加到集合中。如果你得到了该记录,该文件应该被写入。我添加了更多的细节,希望能帮助你进行计算这个问题解决了。你能对你的项目进行回购吗?这应该行得通。看来可能是另一个包在干扰ostrio:文件