Задать вопрос
@ssawyer

Как происходит интеграция SSR?

Пока что учусь, но хотелось бы знать как рендерить компоненты на сервере в связке с React+Laravel?

Допустим на Laravel пишу api, а в реакте все обрабатываю. Дальше какие действия?
Знаю что есть Inertia, но там вроде все без апи делается

Помогите выстроить гайки и винтики в коробочке)) пока что не укладывается
  • Вопрос задан
  • 70 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
Не важно какая связка. В любом случае вы на своем сервере должны будете установить, настроить и запустить nodejs сервер. У вас будет два приложения. Одно - это ларавел, второе - React. В правилах роутинга nginx или apache вы направляете запросы, начинающиеся с /api/ на обработку в php/laravel, а все остальные на ноду. Нода будет выполнять рендер и отдавать html страницу при первичном запросе. Как именно настраивается и пишется приложуха под SSR написано в документации к фреймворку, в вашем случае смотреть доку к реакту.
Инерция - всего лишь обертка для написания клиентских приложений. Сама по себе она никакой серверный рендер не делает. Вам всё так же нужно запускать ноду для рендера на сервере.
Ответ написан
Комментировать
@andry36
Обычно для настоящего SSR с React вам понадобится отдельный Node.js-сервер, а Laravel будет работать как API: обрабатывать запросы к базе и возвращать JSON. В продакшене это настраивается так:

  • Маршруты - в конфиге nginx/apache прописываете, что все запросы к /api/* идут в Laravel (PHP), а всё остальное — на Node.js.
  • Node.js - здесь вы поднимаете приложение на React с серверным рендерингом. Если используете Next.js, то многое решается «из коробки». При запросе Node.js подтягивает нужные данные из Laravel, рендерит React-компоненты и возвращает готовый HTML.
  • Laravel - остаётся бэкендом, отвечает за бизнес-логику, хранение данных, выдаёт результат в формате JSON.


Inertia.js не даёт настоящий SSR, она лишь прокладывает мост между сервером и фронтом, чтобы имитировать SPA без перезагрузки. Если нужна полноценная серверная отрисовка, то Node.js всё равно не обойти.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы