Должен ли я обслуживать React-сборку с Django или использовать Node.js-сервер, если я использую Websockets с Django Channels?

У меня есть React-приложение, которое мне нужно развернуть, и я рассматриваю два варианта обслуживания производственной сборки:

1. Обслуживание React-сборки непосредственно с помощью Django (например, с помощью WhiteNoise или в виде статических файлов).

2. Использование сервера Node.js (например, Express) для отдельного обслуживания сборки React.

У меня есть сервер сокетов в каналах django с использованием asgi. Но я создал react приложение, используя react. Так как SSR лучше по производительности, я хотел узнать, могу ли я использовать сервер моей сборки react с django или нет.

Какой подход обычно рекомендуется, и каковы плюсы и минусы каждого из них?

Если у вас есть серверные компоненты, то вам обязательно понадобится node.js сервер (который будет выполнять рендеринг серверных компонентов react).

Случай, когда вы можете использовать статические файлы, обслуживаемые с помощью Whitenoise или nginx, apache .. или чего-то подобного, - это когда у вас есть только один файл пакета (или несколько) вашего приложения react, который был создан и генерируется один раз при каждом новом развертывании (каждой версии), и в этом случае ваш приложение react - это всего лишь рендеринг на стороне клиента.

Самое важное в вашем случае - иметь единую точку входа, например, вы можете направлять все запросы на сервер django, и сервер django будет взаимодействовать с сервером node.js или аналогично, у вас может быть сервер nginx, который перенаправляет некоторые префиксы на сервер django. node.js сервер.

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