Не удается получить доступ к веб-сайтам, размещенным на S3, по прямому пути

avatar
Pat Vessels
8 августа 2021 в 16:19
24
1
0

У меня есть довольно простой веб-сайт Angular, который я создал для управления драфтом фэнтези-футбола. Оно размещено на S3 как одностраничное приложение.

Моя проблема в том, что я могу получить доступ к подстраницам только в том случае, если я войду в систему сверху и работаю через систему меню.

Например, если я захожу на главный сайт myleague-draft.net, а затем выбираю «статус» в раскрывающемся меню, маршрутизация работает и перенаправляется на myleague-draft.net/status. Однако, если я попытаюсь перейти по пути непосредственно из адресной строки, т. е. наберу myleague-draft.net/status, он выдаст мне 404.

Кроме того, когда я запускаю проект локально на моей машине разработки и ввожу localhost:4200/status, все работает.

Итак, мой вопрос... Можно ли что-то настроить в S3 для правильной маршрутизации? Если нет, есть ли что-то конкретное в Angular

?

Я объявляю маршруты в app.module.ts следующим образом:

RouterModule.forRoot([
      { path: '', component: LoginComponent },
      { path: 'setup', component: SetupComponent },
      { path: 'auction', component: AuctionComponent },
      { path: 'login', component: LoginComponent },
      { path: 'status', component: DraftSelectionsComponent },
      { path: 'stats', component: TeamStatisticsComponent },
      { path: 'summary', component: OwnerSummaryComponent },
      { path: 'budgets', component: BudgetsComponent },
      { path: 'owner', component: OwnerDraftedPlayersComponent },
      { path: 'watchlist', component: WatchlistComponent },
      { path: 'statistics', component: StatisticsComponent }
    ]

Я также пытался загрузить маршруты непосредственно в модуль AppRoutingModule.

Мы будем очень признательны за любой совет.

Источник

Ответы (1)

avatar
Pat Vessels
26 августа 2021 в 12:52
0

Я не знаю, является ли это «правильным» способом решения этой проблемы, но мне удалось заставить его работать, создав папку для каждого пути и скопировав в нее файл index.html.

В интерфейсе aws я сделал следующее:

aws s3 cp index.html s3://myleague-draft.net/setup/
aws s3 cp index.html s3://myleague-draft.net/auction/
.
.
.