Как развернуть несколько reactjs приложений с nginx? - PullRequest
1 голос
/ 31 марта 2020

Я пытаюсь развернуть несколько проектов по одному и тому же пути.

Я работаю с виртуальной коробкой, используя Ubuntu. Я создал папку с именем multiprojects, и внутри есть 3 папки с одним проектом внутри каждого: demo , project1 и project2 .

  • Демонстрационная папка содержит все файлы, созданные после вызова npm run build в демонстрационном проекте.

  • Проектная папка содержит папку с именем build, которая содержит все файлы, собранные после вызова npm run build в проекте 1.

  • папка project2 содержит папку с именем build, в которой содержатся все файлы, сохраненные после вызова npm run build в проекте 2.

Кроме того, project1 содержит «домашнюю страницу» в пакете. json, которая перенаправляет на project1. "homepage": "/ project1". Project2 содержит "домашнюю страницу" в пакете. json, которые перенаправляют на project2. "homepage": "/ project2" и демонстрационный проект не содержит домашней страницы в pacakage. json

Каждый проект имеет в приложении. js является собственным publi c путь:

Для Например, в демонстрационном проекте есть publicPath / demo, в project1 / project1 и, наконец, в project2 / project2

const publicPath = "/demo";

return (
    translations &&
    styles && (
        <BrowserRouter basename={publicPath}>
            <ToastProvider>
                <IntlProvider
                    key={settings.locale}
                    locale={settings.locale}
                    defaultLocale="en"
                    messages={translations[settings.locale]}
                >
                    <Routes />
                </IntlProvider>
            </ToastProvider>
        </BrowserRouter>
    )

И это мой nginx config:

server {
    listen  8090;
    server_name localhost;
    index index.html index.htm;

        location /project1 {
            root /home/osboxes/Documents/multiproject/project1/build;
            try_files $uri $uri/ /index.html;
        }

        location /project2 {
            root /home/osboxes/Documents/multiproject/project2/build;
            try_files $uri $uri/ /index.html;
        }

        location / {
            root /home/osboxes/Documents/multiproject/demo;
            try_files $uri $uri/ /index.html;
        }
    }

I У меня есть два вопроса:

  • Как я могу сделать это лучше?
  • Как это сделать в файле docker?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...