Прокси-сервер devServer проверяет каждый путь перед маршрутизацией и перенаправляет любые совпадения. Правило в вашем примере - проксирование любых запросов к пути /api
, включая любую строку, которая идет после него. Таким образом, предполагая, что ваш Vue CLI devServer работает на порте 8080, это правило будет соответствовать любым запросам, которые вы отправляете на URL, например:
Нет из приведенных выше запросов отправляются по пути /api
, поэтому данное правило никогда не запускается вашим приложением. Если это так, свойство target
указывает путь для перенаправления, а devServer также добавляет сопоставленную часть в конец целевого пути. Итак, приведенные выше примеры перенаправят на:
Цель + соответствующая часть. В этом случае: никакого перенаправления вообще (и фактически вызывает перенаправление l oop).
Вместо этого вы можете отправлять запросы на другой путь target
, и вы можете переписать часть этого пути любым способом, каким вы нравится (или удаляет), используя pathRewrite
. В вашем примере pathRewrite
также ничего не делает, переписав строку '/api'
как '/api'
.
Так что нет смысла использовать этот прокси, и вы можете удалить его.
Одно из применений прокси - это возможность отправлять запросы на относительный URL-адрес, такой как '/api'
, который работает как на производстве, так и в разработке. В работе, когда приложение работает на сервере, на котором также размещается API, этот относительный путь действительно существует, и поэтому приложение просто работает. В разработке, где у вас есть Vue CLI devServer на 8080 и, например, Node-сервер на 3000, приложение все еще работает, перенаправляя эти относительные URL-запросы с devServer на Node.
Это хорошо, потому что тогда вам не нужно связываться с переменными ax ios baseURL
или .env
или абсолютными путями только для того, чтобы ваши API-запросы работали.