在流星公共目录中无法查看新文件(Can't view new files in meteor

2019-10-21 15:02发布

当流星应用程序被编译( meteor build app ),公共目录becomes \programs\web.browser\app这是在发展公共目录中的所有文件\public现在与访问http://domain.tld/file-in-public-directory.jpg

当我把一个新的文件到编译的公共目录,并尝试在浏览器中查看它,我得到一个错误,它说,流星不具有该URL的路由。 当我做这在发展公共目录它的作品完美无瑕,但不是在编译( meteor build app )。

我需要这个,因为我想在该目录中上传新文件。

任何帮助吗?

Answer 1:

所以,你必须调整它一点点,但有可以访问几乎任何你想要的文件夹,特别是对静态文件的方式,通过使用低级别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可以发现在这里 。



Answer 2:

很高兴看到人们在那里试图流星。 这是伟大的东西 - 但在同一时间,它似乎复杂。 :什么真的帮了我这么多的使用这个应用程序是metoer的厨房 。 现在我用我的项目时并肩作战。



文章来源: Can't view new files in meteors public directory