【问题标题】:Gatsbyjs .env.production variables not available in browserGatsbyjs .env.production 变量在浏览器中不可用
【发布时间】:2021-03-22 07:33:19
【问题描述】:

我正在尝试部署我的 Gatsbyjs 站点,但是当我加载页面时,我看到一个错误,告诉我缺少环境变量。

详情:

  • 我正在通过 NGINX 提供已构建的 /public 目录的内容。
  • 一切都在开发中。
  • 我有一个包含我的环境变量的 .env.production 文件。
  • 我的 gatsby-config.js 文件中有 require("dotenv").config({ path: '.env.${process.env.NODE_ENV}d', })
  • 我尝试在我的环境变量前加上 GATSBY_ 前缀,这似乎没有任何区别。
  • 我已经阅读了所有文档和我能找到的所有 SO 解决方案。似乎没有任何区别。

我已经被困在这个问题上太久了。我的最后期限即将到来,我需要这样做。

非常感谢任何帮助!

【问题讨论】:

  • 您的require("dotenv").config({ path: '.env.${process.env.NODE_ENV}d', }) (“d”)中是否有错字,或者只是在问题中?
  • 您的package.json 中是否有任何用于构建/开发的自定义命令?
  • @FerranBuireu 不,这只是问题中的一个错字。我没有任何自定义构建命令。事实证明,这与我将文件上传到服务器的方式有关,这使我无法看到将 GATSBY_ 添加到我的变量中的效果。
  • @FerranBuireu 感谢您的关注!我很感激。

标签: nginx environment-variables gatsby


【解决方案1】:

对于将来可能遇到类似问题的任何人,我建议仔细检查服务器上的文件,并确保它们的哈希值与构建过程的输出相匹配。我终于意识到两者之间存在差异,这是由部署过程中的错误引起的。

如果您还没有,请仔细检查码头。我不是 Gatsby 专家,但对我来说似乎有所不同的是在我的环境变量前加上 GATSBY_

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多