Почему сервер Puma не принимает изменения кода? - PullRequest
0 голосов
/ 22 февраля 2019

Я использую локальный сервер puma для моего приложения rails.

Это в моем файле local_env.yml

STAGING_URL: 'http://statrubytwotwo.test'

Я могу нажать URl, когда сервер работает, и все работает нормально.Если я выключаю сервер с помощью Cntrl-C, а затем нажимаю на сервер, он все еще работает.

Чтобы выключить сервер, я должен сделать

pkill -9 -f 'rb-fsevent|rails|spring|puma'

Основная проблема - я меняю код.Выполните git add * --all и git commit -m "something here", а затем запустите сервер с помощью bundle exec puma

. Сервер снова запускается, но изменения кода НЕ видны.На сервере puma работает старый код?

ОБНОВЛЕНИЕ ====

Я убил всех с помощью следующего:

puma-dev -stop
pkill -9 -f 'rb-fsevent|rails|spring|puma'
pkill -USR1 puma-dev

Я сделал rails s, и яувидеть это

Puma starting in single mode...
* Version 3.11.4 (ruby 2.3.1-p112), codename: Love Song
* Min threads: 0, max threads: 16
* Environment: staging
* Listening on tcp://0.0.0.0:3000
Use Ctrl-C to stop

Я попал в домен https://stattwotwo.test, и он загружается.

Я попал http://localhost:3000 и НЕ НАЙДЕН

Я попалдомен https://stattwotwo.test и он загружается

Независимо от того, что я ничего не делаю, никогда не загружается на http://localhost:3000

Я полагаю, я вспоминаю, что puma-dev будет запускаться каждый раз, когда домен поражендаже если это вниз (Форман или Пау)?В любом случае, когда он перезапускается, он не использует новый код.

1 Ответ

0 голосов
/ 22 февраля 2019

Добавление в качестве ответа, потому что я не могу уместить все это в комментарии:

Вам необходимо выяснить, какой инструмент вы используете.Я думаю, что это будет puma-dev, и вы установили его как фоновый процесс через здесь

Проверьте, можете ли вы подтвердить.

Обычно вы получите конфликт, еслитам были запущены 2 сервера, но они работают на порте, отличном от порта puma / rails по умолчанию 3000, что по умолчанию bundle exec puma работает (я думаю?)

Если это так, вы былизапуск нового сервера на другом порту, в то время как старый сервер (запускающий старый кешированный код с момента его запуска) все еще работает.Вот почему вы не видите изменений.

Вы можете подтвердить пару вещей:

  • Не делайте bundle exec puma, сделайте rails s и проверьте журнал вна экране и посмотрите, есть ли :3000
  • Убейте свою пуму, как вы, но зайдите на свой URL и посмотрите, работает ли она еще
  • Запустите rails s снова и посетите http://localhost:3000 и посмотрите, не изменится ли ваш код при перезагрузке страниц, как вы ожидаете.
  • Сделайте puma-dev -stop, затем rails s, посетите ваш .test url и посмотрите, не сломался ли он (это означает, что puma-dev работалана заднем плане)
...