在 Meteor 部署环境中获取 Meteor 私有文件夹路径
Getting Meteor private folder path in Meteor Deploy Environment
我需要获取私人文件夹中文件的路径。
在我的本地机器上,我可以使用路径 "../../../../../"
获取它,但是,当我使用 meteor deploy
部署到 meteor 服务器时,它不再起作用了。我还尝试使用 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
您可以使用assets/app/
作为相对路径。虽然乍一看这可能没有意义,但 Meteor 会重新安排您的 /private
目录以从 /programs/server
目录映射到 assets/app
。这在开发和生产中都是如此。
基本上假设 private/
映射到 assets/app/
。
对私有文件夹中的一项资产调用 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
我需要获取私人文件夹中文件的路径。
在我的本地机器上,我可以使用路径 "../../../../../"
获取它,但是,当我使用 meteor deploy
部署到 meteor 服务器时,它不再起作用了。我还尝试使用 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
您可以使用assets/app/
作为相对路径。虽然乍一看这可能没有意义,但 Meteor 会重新安排您的 /private
目录以从 /programs/server
目录映射到 assets/app
。这在开发和生产中都是如此。
基本上假设 private/
映射到 assets/app/
。
对私有文件夹中的一项资产调用 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