Загрузка...

Раздельный фронт и бэк в одном проекте

Ветка здесь. Исходники можно взять под начало разработки, например SPA в данном контексте.

А так, простейший пример приложения выводит форму с текстовым полем для ввода сообщения, переключатели типов шифрования, кнопку отправки и поле, в которое печатается результат с бэкенда. На фронт потом можно повесить любой js-фреймворк и запросто вести разработку в том же репозитории, где и бэкенд.

encoder

Идея в том что под докер очень просто и легко можно разнести такие вещи, фронт с одного порта отправляет запросы, к примеру, localhost:8888 на другой порт localhost:8889, который обрабатывает бэк. При этом, для того чтобы обойти ограничение браузеров в части кросс-доменных запросов, если идет xmlhttprequest-обращение с фронта на бэк (так как технически разные домены с разными IP в докере), то можно использовать два пути:

  • как использовано в репозитории: фронт посылает сам себе запрос, к примеру, на /api/, веб-сервер фронта ловит его и проксирует на бэк, смотрим конфиг фронта здесь
  • принудительно сказать веб-серверу бэка отдавать специальные заголовки, а если указать звездочку, то быть публичным, открытым к обращениям с любых клиентов, тогда можно отсылать запросы без дополнительных действии сразу и получать ответы, не опасаясь что браузер заблокирует запрос.

Такие заголовки обычно делаются так, пишем в location /:

add_header 'Access-Control-Allow-Origin' '*';

Подробнее в документации веб-сервера, например nginx.

В конечном итоге структура проекта получилась такая:

project



Похожие заметки:

Redis для сессии в Symfony4

Настройка/конфигурирование Redis в Symfony4 и пример конфига для докера

Открыть здесь

Установка LEMP c xdebug в Docker

Пример конфигурации для стека nginx, php-fpm+xdebug, mysql и настройка PhpStorm для работы с xdebug в докер контейнере

Открыть здесь

Настройка локального сервера в Ubuntu

Краткая заметка по развертыванию LEMP стека в Ubuntu, конфигурировании хостов и пример некоторых конфигов nginx

Открыть здесь


Перед тем как писать комментарии, рекомендую ознакомиться:

Markdown синтаксис »

Оформление кода »

Нужна аватарка »

Комментарии