【问题标题】:Meteor.js upload folder on Production生产上的 Meteor.js 上传文件夹
【发布时间】:2013-11-15 19:14:01
【问题描述】:

因此,我们在本地环境中运行的应用程序中构建了一个文件上传器。我们将文件上传到 public/upload,我们可以使用以下命令读取文件:

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。但是,我无法在应用程序中使用该文件。令人惊讶的是,本地的所有文件似乎也存在于同一个上传文件夹中,并且可由应用程序访问。我错过了什么?

【问题讨论】:

  • 我发现 program.json 有路径和 url 的映射。那么,下一个问题是我应该将我的静态资源存储在服务器的什么位置以便访问?

标签: node.js meteor


【解决方案1】:

如果此应用程序在 Nginx 或 Apache 的服务器上运行,您可以设置 /upload 位置,这样文件将直接提供,无需 Meteor。

在 Nginx 上我使用这样的东西:

location /upload/ {
    root /home/app-name/bundle/programs/web.browser/app;
}

【讨论】:

    猜你喜欢
    • 2017-05-17
    • 1970-01-01
    • 2019-01-11
    • 2015-10-10
    • 2012-01-14
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    相关资源
    最近更新 更多