繁体   English   中英

如何在Meteor上使服务器可以访问文本文件

[英]How do I make text files accessible to the server on Meteor

我很惊讶我不能在这里谷歌我的答案......似乎没有其他人有这个问题。

当您运行流星服务时,js,html等打包在.meteor / local / build文件夹中,但它似乎排除了不是js或html的东西。 我有一个名为“magicsets”的文件夹和一个名为“magicimgs”的文件夹,它们都不在/ local / build文件夹中。 这显然是为什么当我尝试使用fs来读取文件时,它无法找到文件“magicsets / M14.json”

我尝试将magicsets文件夹放入名为“private”的文件夹中,但这并没有完成任何事情。

如何通过FS在我的服务器本地访问文件,如何通过原始URL将文件公开访问我的服务器?

我确信我错过了一些非常简单的东西,因为在SO上有很多更复杂的问题和答案,但是没有答案。 谢谢。

昨天发布的Meteor 0.6.5有一个新功能,可以帮助加载。

创建一个名为/private的目录,您可以使用新的Assets.getTextAssets.getBinary函数访问该目录。

然后将/private目录中的内容捆绑到/program/server/assets名为assets的目录中,并且Web无法访问它,您也不必担心使用fs 您可以使用Assets.getText

要将可公开访问的文件放入/public 所以如果你在a.jpg上有/public/a.jpg ,可以访问http://yourdomain.com/a.jpg

如果希望文本文件可用于Web服务器(即默认为端口3000的服务器),请在项目/ app目录的根目录中创建名为public的文件夹。 删除你的文件夹和文件。 然后,您就可以以http://localhost:3000/magicsets/M14.json访问它们

更新:它看起来可以覆盖捆绑器,但它确实需要更改一些核心代码,但还没有.meteorignore文件。 检查这个SO答案: https//stackoverflow.com/a/16742853/105282

要公开独立于Meteor正在执行的文件目录,您可以使用以下方法。 我这样做,例如,当我需要将整个(Javascript)git repo链接到我的Meteor应用程序时,这样我就可以处理已检出的库版本。

以下适用于0.6.5。 它基本上在/libOpenLayers的签出文件夹提供服务:

connect = Npm.require('connect')

RoutePolicy.declare('/lib', 'network')

WebApp.connectHandlers
  .use(connect.bodyParser())
  .use('/lib', connect.static("/home/mao/projects/openlayers/lib"))

有关更多信息,请参阅https://github.com/meteor/meteor/issues/1229

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM