我正在运行我的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-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)?无论哪种方式重新启动它都不使用新代码。
添加为响应因为我无法在评论中将其全部放入:
您需要找出您正在使用的工具。我的猜测是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在后台运行)