# #vue.js #google-app-engine #google-cloud-platform #vuejs2
Вопрос:
Я использую Google App Engine для размещения приложения VueJS и пытаюсь заставить свое приложение взаимодействовать с моим внутренним API.
Я использую переменную ENV для объявления пути к моему API, однако, когда запрос помещается в GCP, URL-адрес по умолчанию https://example.com/undefined/api/resource
указывает, когда он должен быть https://api.example.com/api/resource
, а также не имеет undefined
.
Поскольку я получаю undefined
ошибку, я подозреваю, что App Engine не может предоставить VUE_APP_API_URL
ее на внешний интерфейс.
Как я могу заставить свое приложение VueJS находить и использовать переменную env в app engine и использовать правильный URL api?
URL-адрес переднего плана выглядит так example.com
URL API выглядит так api.example.com
Доступ к переменной с помощью process.env.VUE_APP_API_URL
приложение.yaml
runtime: nodejs10
env_variables:
VUE_APP_API_URL: "https://api.example.com"
handlers:
- url: /(.*.. )$
static_files: dist/1
upload: dist/(.*.. )$
- url: /.*
static_files: dist/index.html
upload: dist/index.html
Комментарии:
1. Покажите код того, как вы пытаетесь получить доступ к переменной в VueJS
2. @NoCommandLine — Обновил вопрос, спасибо. С помощью
process.env.VUE_APP_API_URL
3. Мой опыт показывает, что на Mac
process.env
возвращает пустые значения для множества переменных, но в Windows он возвращает значения. Я не знаю почему, и, возможно, я что-то упускаю. Как и ты, это вызывало у меня сильную головную боль, когда я строил nocommandline.com . Мое решение состоит в том, чтобы явно установить значение по умолчанию для переменных среды, т. Е. Я проверяю, равно ли значение null, и если да, то я явно присваиваю значение. Чтобы было ясно, у меня нет этой проблемы для всех переменных env. Например, process.env.NODE_ENV возвращает значения, но ПУТЬ и т. Д. Все они равны нулю