[英]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.getText或Assets.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。 它基本上在/lib
为OpenLayers的签出文件夹提供服务:
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.