У меня есть приложение Реагировать с выборками из API. У меня есть dockerfile
, который работает.
Как настроить базовый URL-адрес для всех выборок в производственной среде?
В конце концов я разверну свое приложение Реагировать на Службы приложений Azure.
Я использовал тег proxy
в package.json
, но это только для разработки.
Пример выборки выглядит следующим образом: (перед "/evaluations" должен быть размещен базовый URL-адрес)
fetch(`/evaluations?onlyactiveones=true`, this.credentials)
.then(response => response.text())
.then(data => {
this.setState({ evaluations: data });
console.info(data);
});
Похоже, вы делаете вызовы для получения относительного URL-адреса. Таким образом, по умолчанию он будет вызывать ваш домен в качестве базового URL-адреса. Например в данном случае http://вашдомен.com/evluations, но скорее всего вы хотите вызвать на http://someotherdomain.com/api/evaluations. Для этого вам необходимо настроить обратный прокси-сервер на вашем лазурном веб-сайте (или любом другом хостинг-сервере).
На веб-сайте Azure вы можете настроить обратный прокси-сервер, как предлагается по следующей ссылке: https://ppolyzos.com/2015/10/26/reverse-proxy-functionality-in-azure-веб-сайты/
Я запускаю приложение в контейнере докеров, поэтому не могу установить прокси.
Теперь я решил эту проблему. То, что я сделал:
Замените все выборки этой переменной env. Для приведенного выше примера:
fetch(`${process.env.REACT_APP_API_PROXY}/evaluations?onlyactiveones=true`, this.credentials)
.then(response => response.text())
.then(data => {
this.setState({ evaluations: data });
console.info(data);
});
Определите переменную env по своему усмотрению. Переменная env должна быть размещена перед созданием приложения реакции, ее нельзя заменить во время выполнения.
дайте один пример запроса на выборку.