Неверный путь для js пакетов в nginx обслуживаемом приложении реакции - PullRequest
1 голос
/ 02 мая 2020

Итак, у меня есть SPA, созданный с помощью Create-React-App. Он отлично работает для локального разработчика, и я хотел развернуть встроенное приложение, используя nginx.

. Я настроил свои Dockerfile и nginx.conf, и сначала все вроде нормально работало. Но потом я заметил странную проблему.

Большая часть приложения работает нормально, но когда я пытаюсь получить доступ к вложенному URL-адресу напрямую (т.е. не переходя к нему через приложение -> Это работает нормально. Проблема возникает только когда я получаю прямой доступ к URL-адресу или обновляю sh страницу), в консоли / сети возникают ошибки при загрузке встроенных файлов. Скажем, у меня есть доступ к localhost:3000/app/potato, я вижу, что мой браузер пытается получить доступ к файлам с localhost:3000/app/static/js/2.ebff4827.chunk.js (вместо localhost:3000/static/js/2 .ebff4827.chunk.js)

Доступ к localhost:3000/app работает нормально, но localhost:3000/app/ (с завершающим / ) имеет такое же странное поведение.

В результате браузер не может загрузить страницу ...

Вот мой nginx.conf (хотя я не верю, что это вызывает мою ошибку , как я настроил его с пустым CRA, и он работал нормально https://github.com/piaverous/cra-nginx-demo):

server {
    listen       3000;
    server_name  localhost;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri /index.html;                 
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

Кто-нибудь знает, что может быть причиной проблемы? Я в полном недоумении здесь

1 Ответ

0 голосов
/ 03 мая 2020

Оказывается, эта проблема возникла из моей сборки веб-пакета. В моем package.json у меня было homepage: "./", что вызвало проблемы с разрешением пути.

Казалось, что просто удаление этого поля решило эту проблему! Nginx Конфиг был в порядке:)

...