我正在为Rails应用程序运行本地puma服务器。
这在我的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是否会在域被击中时启动,即使该域已关闭(forman或pow)?无论哪种方式,重新启动时都不会使用新代码。
答案 0 :(得分:0)
由于无法在评论中全部添加内容而添加为回复:
您需要找出正在使用的工具。我的猜测是puma-dev,您通过here
将其安装为后台进程看看是否可以确认。
通常情况下,如果有2台服务器正在运行,则会发生冲突,但是该服务器运行在puma / rails默认值3000(默认运行bundle exec puma
的端口)上(我认为呢?)>
如果是这种情况,则您是在其他端口上启动新服务器,而旧服务器(从启动时开始运行旧的缓存代码)仍在运行。这就是为什么看不到更改的原因。
您可以确认以下几点:
bundle exec puma
,不执行rails s
并检查日志到屏幕上,看看是否存在:3000
rails s
,然后访问http://localhost:3000
,看看在重新加载页面时代码是否发生更改。puma-dev -stop
,然后执行rails s
,然后访问您的.test网址,看看它是否中断(这意味着puma-dev在后台运行)