Ошибка NoSuchKey
на самом деле является ошибкой S3, а не самого вашего приложения, поэтому я думаю, что происходит то, что пользователь перемещается по этому пути, а S3 пытается найти файл HTML по этому пути (/login
) но не может - таким образом, ошибка.
Проблема, с которой, я полагаю, вы сталкиваетесь, заключается в том, что реагирующий маршрутизатор выполняет всю обработку и маршрутизацию на стороне клиента - на сервере нет физического ресурса (или, в вашем случае, S3), который имеет фактические маршруты.
Таким образом, начальная загрузка индекса и последующая навигация будут работать, потому что в этот момент ваш браузер загрузил JavaScript, который обрабатывает маршрутизацию на стороне клиента.Прямой переход к маршруту (что угодно, кроме индекса) заставит S3 попытаться найти этот физический файл и потерпит неудачу - если это имеет смысл.
Я считаю, что вам нужно изменить настройки в S3 на всегда загружайте ваш индексный файл - даже если есть ошибка.Вы можете сделать это, перейдя в Свойства вашего сегмента S3, перейдите на сайт Static Website Hosting и сделайте ваш файл index.html индексным документом и Документ об ошибке.
Таким образом, когда S3 встречаетNoSuchKey
ошибка, это откат к вашему файлу index.html - в этот момент реагирующий маршрутизатор вступит во владение и выяснит, по какому маршруту должно быть приложение.
Марк Гарро имеет отличную статью здесь по теме, которая может вам помочь.