gpt4 book ai didi

javascript - 如何从已部署的 Meteor 应用程序的子目录中读取文件?

转载 作者:行者123 更新时间:2023-11-29 10:43:58 25 4
gpt4 key购买 nike

我目前正在制作一个 Meteor 应用程序,但无法从 private 子目录中读取文件。我一直在学习几个不同的教程,并设法让它在本地运行 meteor 应用程序时完美运行。这个问题 ( Find absolute base path of the project directory ) 帮助我想到使用 process.env.PWD 访问根目录,然后我使用 .join() 访问private 文件夹和里面的相关文件。但是,当我部署此代码时,网站在启动时崩溃。我非常确信这是 process.env.PWD 的问题,所以我想知道在部署的应用程序上获取 Meteor 根目录的正确方法是什么。

    //code to run on server at startup
var path = Npm.require('path')

//I also tried using the below line (which was recommended in another Stackoverflow question) to no avail
//var meteor_root = Npm.require('fs').realpathSync( process.cwd() + '/../' );

var apnagent = Meteor.require("apnagent"),
agent = new apnagent.Agent();
agent.set('cert file', path.join(process.env.PWD, "private", "certificate-file.pem"))
agent.set('key file', path.join(process.env.PWD, "private", "devkey-file.pem"))

最佳答案

在开发模式下,文件结构与捆绑后不同,所以你不应该依赖它。特别是,您不应该像使用 path 方法那样直接访问您的文件。

加载私有(private) Assets 的描述in this section Meteor 的文档。它主要归结为这种方法:

Assets.getBinary("certificate-file.pem");

它是 getText 对应物。

关于配置 APN 代理,参见 this section文档。您不必通过将文件路径作为 cert file 参数来配置代理。相反,您可以将 Assets 方法返回的原始数据直接作为 cert 传递。 key file ~ key 对和其他设置也是如此。

作为替代方案,您需要将文件独立提交到生产服务器到与 Meteor 应用程序不同的文件夹,并使用它们的全局路径。然而,这对于像 Heroku 这样的云提供商来说是不可能的,因此最好以预期的方式使用 Assets 。

关于javascript - 如何从已部署的 Meteor 应用程序的子目录中读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23161497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com