因此,我们在应用程序中构建了一个文件上传器,用于处理本地环境。我们将文件上传到公共/上传,我们可以使用以下方式读取文件:
http://localhost:3000/upload/filename.extension
现在,当我们将代码移至生产环境时,我们使用了一个检查:
getUploadPath = function () {
var fs = Npm.require('fs');
var path = Npm.require('path');
var devPath = path.join(process.cwd(),"../../../../../public");
var prodPath = path.join(process.cwd(),"../client/app/");
if (fs.existsSync(devPath)) {
return path.join(devPath,"upload");
}
else {
return path.join(prodPath,"upload");
}
}
现在,这会将文件保存到{prod_path} / programs / client / app / upload。但是,我无法在应用程序中使用该文件。令人惊讶的是,本地的所有文件似乎也存在于同一个上传文件夹中,并且可由应用程序访问。我错过了什么?
答案 0 :(得分:0)
如果此应用程序在具有Nginx或Apache的服务器上运行,您可以设置/上传位置,这样文件将直接在没有Meteor的情况下提供。
在Nginx上我使用这样的东西:
location /upload/ {
root /home/app-name/bundle/programs/web.browser/app;
}