Как прокси-сервер для поддержки сервера по определенному пути?

Вот конфигурации маршрутов:

<Route path='/' component={CoreLayout}>
  <IndexRoute component={HomeView}/>
  <Route path='/404' component={NotFoundView}/>
  <Redirect from='*' to='/404'/>
</Route>

Вот конфигурация прокси для webpack-dev-сервера:

proxy: {
  '/service': 'http://localhost:8080'
}

Экспресс-сервер прослушивает 3000 портов.

Я надеюсь, что все запросы, отправленные на http://localhost:3000/service, будут перенесены в http://localhost:8080, но кажется, что response-router обрабатывает все запросы, а прокси-сервер не работает.

Любое тело знает, как это исправить? Заранее благодарю

Ответ 1

  1. Изучите документацию Dev Server Webpack, вам нужно предоставить объект с целевым свойством.

  2. В документации по http-proxy-middleware показано использование шаблонов для сопоставления.

В заключение я бы попробовал это:

proxy: {
  '/service/**': { target: 'http://localhost:8080' }
}

Ответ 2

Убедитесь, что вы правильно обрабатываете обещания для вызовов API. Я столкнулся с той же проблемой, когда клиентский сервер обрабатывал все вызовы API, а не возвращал ошибку 404 и захват прокси-сервера.

fetch("/api/list")
    .then(res => res.json())
    .then(data => {
      // handle the data
      })