Переменные Gatsbyjs .env.production недоступны в браузере

Я пытаюсь развернуть свой сайт Gatsbyjs, но когда я загружаю страницу, я вижу ошибку, сообщающую мне, что отсутствует переменная среды.

Подробности:

  • Я передаю содержимое созданного каталога /public через NGINX.
  • Все работает в разработке.
  • У меня есть файл .env.production с переменными среды.
  • У меня есть require("dotenv").config({ path: '.env.${process.env.NODE_ENV}d', }) в моем файле gatsby-config.js.
  • Я пробовал ставить перед переменными env префикс GATSBY_, что, похоже, не имеет значения.
  • Я прочитал каждый бит документации и каждое решение SO, которое смог найти. Ничто, кажется, не имеет никакого значения.

Я застрял на этом слишком долго. У меня скоро крайний срок, и мне нужно, чтобы это сработало.

Любая помощь приветствуется!


1
130
1

Ответ:

Решено

Всем, кто может столкнуться с подобной проблемой в будущем, я бы порекомендовал дважды проверить файлы на вашем сервере и убедиться, что их хэши совпадают с выходными данными процесса сборки. Наконец я понял, что между ними было несоответствие, вызванное ошибкой в ​​​​процессе развертывания.

Если вы еще этого не сделали, дважды проверьте доки. Я не эксперт по Гэтсби, но, похоже, для меня имело значение префикс моих env vars с GATSBY_.