Маршрутизаторы Angular 4 для веб-приложений, не распознаваемые Google Adwords, Mailchimp

У меня есть рабочий сайт Angular 4 по адресу http://tika.io/ где все маршруты работают так, как должны. Например, http://tika.io/mink отлично работает при вводе в адресную строку. Все маршруты реализованы с использованием роутера.
Когда я пытаюсь поместить любой URL, кроме базового URL, в поле ссылки в Google Adwords и службе перенаправления Mailchimp для форм подтверждения, мне сообщают, что URL недействителен. Я пробовал / mink и / [все другие существующие URL-адреса], но все они недействительны.
Поскольку обе эти службы говорят, что ссылка недействительна, я думаю, что с сайтом что-то не так. Любая помощь приветствуется!

2 ответа

Решение

Если вы загрузите веб-страницу (tika.io/mink) и осмотрите сетевую консоль (cmd + option + i в Chrome), вы увидите, что запрос mink возвращает 404, даже если сама страница загружается нормально.

Для Mailchimp эта страница не существует.

Чтобы исправить это, верните ответ 200 вместо 404. В Amazon создайте дистрибутив Cloudfront, как указано в этом ответе или этой документации.

Не забывайте также переадресовывать запросы к вашему домену на ваше доменное имя Cloudfront вместо того, что было раньше.

После того, как все будет развернуто, вы сможете перезагрузить страницу и увидеть, что она возвращает статус 200. Тогда Google распознает ее.

Я нашел ссылку на https://angular.io/guide/deployment которой говорится о "Настройте сервер для перенаправления запросов на отсутствующие файлы в index.html". Здесь есть более конкретная информация. Видимо, это характер одностраничных приложений, который вызывает такое поведение. Принятый ответ указал мне правильное направление.

Другие вопросы по тегам