Развернуть Laravel and React spa - PullRequest
0 голосов
/ 05 июня 2019

Как я могу развернуть эти два вместе, мне не нравятся предустановки Laravel React, я хочу разделить оба, связать приложение React и развернуть их вместе с любым веб-сервером (apache, nginx ...)

РЕДАКТИРОВАТЬ

Это мой конфиг для Laravel, но он не загружает маршруты

server {
    listen 8000;
    server_name 127.0.0.1
    root "..\..\Proyecto\Backend\JWT\public";

    add_header 'Access-Control-Allow-Origin' '*';
    add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";

index index.html index.htm index.php;

charset utf-8;

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt  { access_log off; log_not_found off; }

error_page 404 /index.php;

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    include fastcgi_params;
}

location ~ /\.(?!well-known).* {
    deny all;
}
}

Ответы [ 2 ]

1 голос
/ 05 июня 2019

Вы можете запускать их отдельно с помощью nginx

, каждый из которых запускается на отдельных портах и ​​использовать методы (POST / GET) для передачи / получения данных

использовать pm2 (http://pm2.keymetrics.io/)для запуска React (я рекомендую его, потому что вы можете следить за активностью приложения реагировать и, если вы хотите выполнить обслуживание, вы можете остановить текущий процесс приложения и запустить процесс приложения "в процессе обслуживания")

вы можете прочитатьподробнее о запуске laravel на nginx здесь (https://www.digitalocean.com/community/tutorials/how-to-deploy-a-laravel-application-with-nginx-on-ubuntu-16-04)

что касается запуска реакции без pm2, вам нужно собрать проект yarn build и сказать nginx, что файл, который вы хотите загрузить, это index.html внутрифайл сборки

при условии, что вы используете сервер ubuntu и загрузили свой код в github или gitlab

server {
  listen 50;
  root /var/www/[Your repo name]/build;
  server_name [your.domain.com] [your other domain if you want to];
  index index.html;
  location / {
    try_files $uri /index.html;
  }
}

, вы записываете это внутри своей конфигурации nginx вместе с конфигурацией laravel наотдельный порт

надеюсь, мой ответ немного помог

0 голосов
/ 06 июня 2019

Вы можете подойти к нему двумя способами.

Первый - это когда вы создаете реагирующее приложение в другой папке, чем папка проекта laravel.В таком случае просто разверните приложение laravel и откройте приложение в двух разных URL.

Вторым условием является то, когда приложение реакции находится внутри приложения laravel.В таком случае соберите реагирующий проект и поместите папку dist в папку views проекта laravel.Таким образом, добавьте в * route / web.php

//Used for handling the html file of react project
 View::addExtension('html', 'php');

Route::get('/{any}', function () {
   //path to dist folder index.html inside the views directory
   return view('build/index');
})->where('any', '.*');

Laravel не будет отправлять необходимые файлы js и css из папки views.Поэтому вам нужно скопировать и вставить все содержимое папки dist в общую папку проекта laravel.Нет необходимости копировать файл paste index.html, но другой файл необходимо поместить в общую папку.

После этого перейдите в корневой URL-адрес проекта laravel в браузере, приложение реакции должно работать

...