Вложив пару дней и глубоко погрузившись в код serve
, я понял, что делал ошибку, когда использовал параметр -s при запуске сценария обслуживания.
serve -s build -l 80
Наличие параметра -s по умолчанию все маршруты обслуживаются из индекса. html. Наличие флага -s необходимо, если вы просто обслуживаете сборку, созданную с помощью приложения Create response, иначе маршруты, отличные от «/», вернут ответ 400.
Вы можете просто использовать serve build
если у вас есть все маршруты, предварительно обработанные, но если есть некоторые маршруты, для которых у вас нет предварительно обработанных HTML доступных (для моего случая использования это были компоненты, использующие ленивую загрузку), вы можете создать serve. json в папке publi c с указанием источника и назначения.
{
"rewrites": [
{ "source": "/districts-data", "destination": "/200.html" },
{ "source": "/districts-data?*", "destination": "/200.html" },
{ "source": "/suggest-time", "destination": "/200.html" },
{ "source": "/covid-19-statistics", "destination": "/200.html" }
]
}
Вам также необходимо изменить вашу команду serve на serve -c serve.json build
. - c используется для указания указать пользовательский путь к serve.json
.