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

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

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

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

Помогите выстроить гайки и винтики в коробочке)) пока что не укладывается
  • Вопрос задан
  • 143 просмотра
Подписаться 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 всё равно не обойти.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
SkillsRock Таганрог
от 60 000 до 90 000 ₽
Beetbarrel Калининград
от 90 000 до 140 000 ₽
Beetbarrel Калининград
До 160 000 ₽