Меня попросили внести некоторые изменения в устаревший проект, в котором нет React Router. Одним из изменений является: добавить его. Приложение основано на пакете create-react-app
, но настроено так, чтобы определенные запросы указывали на внешний сервер в dev.
Проблема с этим, похоже, заключается в прокси-символе с подстановочными символами внизу.
В package.json:
"/path/one": {
"target": "https://server.one.com:8509/",
"secure": false,
"changeOrigin": true
},
"/anotherpath": {
"target": "https://server.two.com:7449/",
"secure": false,
"changeOrigin": true
},
"/.*": {
"target": "https://server.x.com:8442/",
"secure": false,
"changeOrigin": true
}
Теперь, если я добавлю такой маршрутизатор, как этот:
<BrowserRouter>
<Switch>
<Route path="/new-page/" component={NewPage} />
<Route component={OldPage} />
</Switch>
</BrowserRouter>
При переходе к localhost:3000/new-page/
попадет прокси, указанный в package.json
, и проигнорирует маршрутизатор.
В пакете create-react-app
на сервере разработчика Webpack настроены правильные опции для включения react-router
, а именно установлено свойство historyApiFallback
. Обычно они играют хорошо, поэтому все зависит от настроек прокси.
Итак: есть идеи, как решить эту проблему? Добавление дополнительной записи прокси, перенаправляющей /new-page/
обратно на localhost, похоже, не работает, и я не уверен, используют ли записи прокси в package.json
глобусы или регулярные выражения.