Маршрутизация пользовательского домена шлюза AWS Api к неверному базовому URL - PullRequest
0 голосов
/ 21 февраля 2019

Я занимаюсь разработкой приложения Angular Universal без сервера в шлюзе AWS Lambda / Api.Приложение отлично работает, используя стандартный URL-адрес API ({api-id} .execute-api. {Region} .amazonaws.com / {stage} /), но сейчас я пытаюсь развернуть его в удобочитаемом URL-адресе с помощью Api.Пользовательские доменные имена шлюза.

Для этого я следовал документам и устранял неполадки, используя вопросы другого stackoverflow, но теперь я столкнулся с проблемой и не могу найти другой вопрос, который выглядит как мойпроблема.

Я уже настроил API, настраиваемое доменное имя (которое создало дистрибутив облачного фронта) и маршрутизацию ALIAS типа A Route53 A к этому новому распределению облачного фронта и маршрутизации.Проблема, с которой я сталкиваюсь, заключается в том, что когда я использую новое доменное имя, угловое приложение не может найти ресурсы, такие как CSS, значки и т. Д.Все они работают нормально, используя стандартный URL-адрес API, но не с пользовательским.

Для отладки я настроил шлюз Api для регистрации запросов к CloudWatch, и я вижу, что когда я использую стандартный URL-адрес,журнал пути ресурса выглядит следующим образом:

HTTP Method: GET, Resource Path: /main.4d57a71fd195330e8ee9.js

Но когда я использую пользовательский URL, тот же журнал выглядит так:

HTTP Method: GET, Resource Path: /development/main.4d57a71fd195330e8ee9.js

Я предполагаю, что это как-то связано сбазовый URL в пользовательской конфигурации доменного имени Api Gateway, я попытался изменить его на все, что мог придумать, но ничего не исправило.

Вот скриншот моей конфигурации Api Gateway.

Шлюз Api - Конфигурация пользовательских доменных имен

Скажите, если вам нужно что-то еще, и извините, если плохой английский.

Заранее спасибо.

РЕДАКТИРОВАТЬ: я должен дать понять, что я пытаюсь указать на "стадии разработки" моего API

Ответы [ 2 ]

0 голосов
/ 06 июля 2019

У меня была похожая проблема.Единственный обходной путь для меня - это установить baseHref в "/" в environment.serverless.ts и иметь одно единственное сопоставление в настраиваемом доменном имени из "/" в "{YOUR-API}: production".

Thisнарушает прямой URL-доступ к API, но доступ через пользовательское доменное имя работает нормально.

0 голосов
/ 21 февраля 2019

Полагаю, вам просто нужно перенастроить свой пользовательский домен.Вам должно быть достаточно изменить следующее:

В разделе «Базовые сопоставления путей» измените путь с «/ development» на просто «/»

...