因此,我们在应用程序中构建了一个文件上传器,用于处理本地环境.我们将文件上传到公共/上传,我们可以使用以下方式读取文件:
http://localhost:3000/upload/filename.extension
Run Code Online (Sandbox Code Playgroud)
现在,当我们将代码移至生产时,我们使用检查:
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");
}
}
Run Code Online (Sandbox Code Playgroud)
现在,这会将文件保存到{prod_path}/programs/client/app/upload.但是,我无法在应用程序中使用该文件.令人惊讶的是,本地的所有文件似乎也存在于同一个上传文件夹中,并且可由应用程序访问.我错过了什么?
小智 0
如果此应用程序运行在带有 Nginx 或 Apache 的服务器上,您可以设置 /upload 位置,这样文件将直接提供,无需 Meteor。
在 Nginx 上我使用这样的东西:
location /upload/ {
root /home/app-name/bundle/programs/web.browser/app;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |