Я следую этому Сообщение блога, чтобы создать весеннюю загрузку с проектом reactjs.
Чтобы мой проект работал, я заметил, что у меня должны быть запущены и мой сервер nodejs, и мой встроенный сервер tomcat с весенней загрузкой (я использовал yarn start
для запуска приложения реакции). Всегда ли так будет? Должен ли быть запущен сервер nodejs, чтобы отобразить ответ весенней загрузки в моем пользовательском интерфейсе reactjs? Или у меня может быть только мой сервер tomcat.
Кроме того, я заметил, что в моем приложении реакции он запускается на localhost: 3000, тогда как мое приложение весенней загрузки запускается на localhost: 9080. А в моем package.json
прокси определен как localhost:8080
. Как сделать так, чтобы оба приложения находились под одним хостом и обслуживались портом?
@AlexanderStaroselsky Хм, но как создается файл jar?
@Robin, около 9 месяцев назад я сделал проект своей последней компании, использующей те же технологии. Я запустил его в производство перед отъездом, и он прошел успешно! У меня есть шаблон этого проекта https://github.com/gasparteixeira/springboot-reactjs-app.
Взгляните на структуру. Пример: для разработки продолжайте использовать инструменты загрузки spring и yarn start для reactjs! Но когда вы собираетесь сгенерировать jar / war, убедитесь, что вы создали (сборку пряжи) внутри своего проекта реакции.
Вы закомментировали раздел выполнения npm в своем pom.xml. Как придешь?
@Robben, взгляните на этот плагин Maven (mvnrepository.com/artifact/com.github.eirslett/…). В основном вы можете выполнять команды npm / node, когда ваш mvn строится. Взгляните на ссылку pom.xml выше.
Следуйте моим нижеприведенным инструкциям, и все будет хорошо.
В вашем весеннем загрузочном приложении в разделе application / properties не указывайте какой-либо порт, поэтому ваша загрузка sprig может работать по умолчанию на 8080 или 9080, если вы можете работать на нем.
Создайте толстую банку для своего проекта весенней загрузки
разверните его на /opt/your project name
на сервере.
запустите загрузочное приложение с nohup java -jar jarname &
или создайте для него службу, прочтите весеннюю документацию, чтобы запустить свою банку как службу.
он запустит ваше приложение на 8090
или 8080
, как вы хотите.
Теперь давайте перейдем к вашему клиентскому приложению, которое реагирует.
Чтобы запустить ваше клиентское приложение, есть несколько способов.
apache/ngnix
для ex /var/www/html
Теперь, если у вас есть, скажем, доменное имя example.com, тогда ваше внешнее приложение может быть доступно с http://www.example.com
, а серверные API доступны на http://www.example.com:8080
, убедитесь, что разрешены 8080 и 80.
Теперь вы думаете, что нет, я также хочу, чтобы мой apis был доступен для www.example.com
, тогда сначала убедитесь, что контекстный путь определен вашим apis, чтобы они были доступны с базовым путем, допустим, /api
- ваш базовый путь.
затем определите прокси на сервере apache или ngnix.
<VirtualHost *:80>
ProxyRequests Off
ProxyPass /api http://localhost:8080/api
ProxyPassReverse /api http://localhost:8080/api
</VirtualHost>
Теперь вы можете также получить доступ к своему API на www.example.com/api
Различные порты будут только во время разработки, поэтому вы можете использовать инструменты разработки для обеих платформ по отдельности. В производственной среде React будет обслуживаться как статические ресурсы HTML / CSS / JS. Прокси-сервер разработки предназначен для репликации производственной среды, в которой React будет обслуживаться как статические ресурсы, выполняя HTTP-вызовы к конечным точкам в Spring.