Я развертываю приложение React на сервере Amazon в корзине S3. Проблема в том, что многие сайты размещены под одним и тем же адресом. Это сайт-витрина от компании, на которую я работаю. Домашняя страница: www.example.com
Мой веб-сайт должен стать доступным по адресу www.example.com/mywebsite, это также должна быть домашняя страница моего веб-сайта. Оттуда вы можете нажать вокруг сайта. Я создал собственный префикс для него, он отлично работает почти для всех страниц, кроме тех, которые содержат какой-то идентификатор в пути.
Поэтому, когда вы перейдете на www.example.com/mywebsite/user/123, вы будете перенаправлены на www.example.com
Похоже, что серверы Amozon не распознают часть идентификатора в URL.
Вот мои конфигурации маршрутов от реагирующего маршрутизатора (в Typescript):
export class Routes extends React.Component {
render() {
return (
<div>
<Route exact path={HOME_PAGE} component={Home}/>
<Route exact path={HOME_PAGE + "/user/:id"} component={UserDetails}/>
</div>
);
}
}
Это префикс, который я создаю для URL:
//Specifies the ENVIRONMENT the app runs in DEVELOPMENT or PRODUCTION
export const ENVIRONMENT: "DEVELOPMENT" | "PRODUCTION" = "PRODUCTION"
//When in development the app is running local so no prefix is needed else
//add /mywebsite to the home page url
export const HOME_PAGE = (ENVIRONMENT == "DEVELOPMENT") ? "" : "/mywebsite"
Сайт доступен онлайн, но я не имею права делиться ссылкой в Stackoverflow