当流星应用程序被编译( meteor build app
),公共目录becomes \programs\web.browser\app
这是在发展公共目录中的所有文件\public
现在与访问http://domain.tld/file-in-public-directory.jpg
当我把一个新的文件到编译的公共目录,并尝试在浏览器中查看它,我得到一个错误,它说,流星不具有该URL的路由。 当我做这在发展公共目录它的作品完美无瑕,但不是在编译( meteor build app
)。
我需要这个,因为我想在该目录中上传新文件。
任何帮助吗?
所以,你必须调整它一点点,但有可以访问几乎任何你想要的文件夹,特别是对静态文件的方式,通过使用低级别connectHandlers
对象。
在这里你有一个文件夹命名为.images(从流星自动刷新隐藏),每当一个请求到由供应图像的示例的http:// [yoursiteURL] /图片/ ...
var fs = Npm.require('fs');
WebApp.connectHandlers.use(function(req, res, next) {
var re = /^\/images\/(.*)$/.exec(req.url);
if (re !== null) {
var filePath = process.env.PWD
+ '/.images/'
+ re[1];
var data = fs.readFileSync(filePath, data);
res.writeHead(200, {
'Content-Type': 'image'
});
res.write(data);
res.end();
} else {
next();
}
});
您使用正则表达式来找出如果传入的请求试图访问/图像/。 如果是,我们要与相应的头发送图像,使用res.write()
值得注意的有两点:
1 -你不必使用任何特殊的(不包等)使用Npm.require('fs')
因为它是建立在和可用的。
2-使用fs.readFileSync
是一个黑客位的,并且被阻塞。 你要调整,对于高性能,生产应用。
希望这可以帮助! 关于更多的信息connectHandlers
可以发现在这里 。
很高兴看到人们在那里试图流星。 这是伟大的东西 - 但在同一时间,它似乎复杂。 :什么真的帮了我这么多的使用这个应用程序是metoer的厨房 。 现在我用我的项目时并肩作战。