Работа с url окружения в "build" версии react

Я пытаюсь развернуть приложение react-django на продакшене, используя digitalocean droplet. У меня есть файл, в котором я проверяю текущее окружение (разработка или продакшн), и на основе текущего окружения назначаю соответствующий url для подключения к бэкенду django, как например:

export const server = enviroment ? "http://localhost:8000" : "domain-name.com";

Мое приложение прекрасно работает как в режиме разработки, так и в режиме производства в локальной системе (я временно все еще использовал http://localhost:8000 вместо domain-name.com). Но я заметил кое-что довольно странное. Дело в том, что когда я попытался зайти на сайт (все еще на локальном компьютере) с помощью "127.0.0.1:8000" НА БРАУЗЕРЕ, страница пуста с консольной ошибкой "No 'Access-Control-Allow-Origin' header is present on the requested resource. Если вам нужен непрозрачный ответ, установите режим запроса на 'no-cors' ....". Когда я изменил его обратно на "http://localhost:8000", все снова заработало. Меня беспокоит, не является ли 127.0.0.1:8000 тем же самым, что и http://localhost:8000? Из этого я заключаю, что все, что у вас есть в месте domain-name.com, когда вы создаете свой react frontend, это именно то, что будет использоваться.

Как я уже сказал, я пытаюсь развернуть сайт на дроплете Digital Ocean, и я планирую установить ssl сертификат, чтобы сайт мог обслуживаться по https. Теперь мой вопрос заключается в том, что, учитывая вышеописанный сценарий, каким должен быть правильный способ написания url в production? Должно ли это быть "serverIP-address", "domain-name.com", "http://domain-name.com", "https://domain-name.com" ?.

Я должен упомянуть, что ранее я пытался развернуть на указанной платформе, используя IP-адрес в месте domain-name.com. После выполнения всех шагов. Я получил ошибку 502 (Bad gateway). Однако я не утверждаю, что использование Ip-адреса было причиной ошибки в этом случае.

Пожалуйста, я буду признателен за любую помощь, особенно от того, кто ранее развернул приложение react-django на указанной платформе. Спасибо

Из этого я делаю вывод, что все, что у вас есть в domain-name.com когда вы создаете свой react frontend, это именно то, что будет использоваться.

Не совсем верно, будет использоваться домен, с которого обслуживается приложение react. Если вы создадите его локально, загрузите на сервер и настроите домен domain.com для его обслуживания, то домен domain.com будет использоваться для cors. Лучше всего разрешить все CORS до тех пор, пока ваш проект не будет готов к развертыванию. После этого внесите домен.com в белый список

На самом деле решение состоит в том, чтобы указать хост(ы), разрешенные для подключения к бэкенду, в файле setting.py, например, так: CORS_ALLOWED_ORIGINS = [ domain-name.com, https:domain-name.com , ... ] и т.д. Таким образом, вы не будете привязаны к использованию url, указанного в переменной окружения react. Хотя я не развертывал на сервере, моя первая забота в пределах локальной машины устранена

Вернуться на верх