【问题标题】:Getting Meteor private folder path in Meteor Deploy Environment在 Meteor Deploy Environment 中获取 Meteor 私有文件夹路径
【发布时间】:2017-01-19 19:36:46
【问题描述】:

我需要获取私有文件夹中文件的路径。 在我的本地机器上,我可以通过使用路径 "../../../../../" 来获取它,但是,当我使用 meteor deploy 部署到流星服务器时,它不再工作了。我还尝试使用process.cwd() 记录当前目录并得到以下内容,这与我在本地机器上得到的结构不同:

/meteor/containers/3906c248-566e-61b7-4637-6fb724a33c16/bundle/programs/server

从我的本地机器记录的目录给出:

/Users/machineName/Documents/projectName/.meteor/local/build/programs/server

注意:我正在使用此路径设置https://www.npmjs.com/package/apn

【问题讨论】:

    标签: deployment meteor path


    【解决方案1】:

    您可以使用assets/app/ 作为相对路径。尽管乍一看这可能没有意义,但 Meteor 会重新安排您的 /private 目录以映射到 /programs/server 目录中的 assets/app。这是在开发和生产中。

    基本上假设private/ 映射到assets/app/

    【讨论】:

    • 感谢您的回答!我在哪里可以找到这方面的信息?试图查看文档并找不到它。
    • @doog 恐怕没有这方面的文档。如果您遵循.meteor/local/build/programs/server 路径,它可能会更清晰。这个目录是应用真正运行的地方
    • 你是上帝,哈哈,谢谢!
    【解决方案2】:

    在私有文件夹中的一项资产上调用 Assets.absoluteFilePath(assetPath),然后从您返回的字符串中删除资产文件的名称,例如,假设您在私有文件夹中有一个名为 test.txt 的文件文件夹:

    var aFile = 'test.txt';// test.txt is in private folder
    var aFilePath = Assets.absoluteFilePath(aFile);
    var aFolder =  aFilePath.substr(0, aFilePath.length - aFile.length);
    console.log(aFolder);
    

    https://docs.meteor.com/api/assets.html#Assets-absoluteFilePath

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-11
      • 2011-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      相关资源
      最近更新 更多