这是一个个人练手的小项目,做了一个微信吃鸡群里的吃鸡排名,有兴趣的可以见 (https://github.com/IFS49F/knivesout_ranking)
项目基于 Rails + React,具体版本如下:
ruby 2.5.0
rails 5.1.4
react 16.2.0
capistrano 3.10.1
unicorn 5.4.0
在某个风和日丽的下午,我对项目的 style 做了一些更新,主要是给 table 中的每个 tr 行加上了 opacity 的 style,从上至下,渐渐透明。
完成编码,本地测试,都没有问题。接下来,git push origin, 再然后
cap production deploy
....
...log...
...
经历了较为漫长了等待,部署完成。然后日常的去刷新页面,然后,尼玛,什么鬼?页面样式居然没有更新。
接下来,我上了 github 以及服务器上 double confirm 了代码已经更新。所以,问题就在于页面拿到的是老的 stylesheet。
接着,来到了部署目录的 current,以及 shared 目录,查看所有 css assets 文件,然后和之前的 release 版本相比较,发现根本就没有新的 css assets 生成。
接着,在服务器上,手动执行 rake assets:precompile,然后 check current 下的 assets,发现了生成的新 css assets,然后刷新页面,依然没有动静
接着,cap production unicorn:restart,依然 fucking the same
接着,执行 cap production deploy:clobber_assets 清除了 current 下的所有 assets,但是无济于事,因为页面加载的是之前 release 对应的 css assets
接着,执行 cap production deploy:cleanup 结果是告诉我,没什么可以做的,因为我设置了保留 5 个 release,现在就是 5 个
接着,在 current 目录下执行 bundle exec rake tmp:clear 依然没有什么卵用
其实,看着我最后执行的两个命令,已经能看出我比较抓狂了……😫
最后不抱什么希望依次的执行了
rake assets:precompile
cap production unicorn:stop
cap production unicorn:start
WTF, 居然,成功了!看到了该看到的样式。
再之后,我两次更新了一些代码,样式之类的,然后通过 cap production deploy 发布,都能正常工作。
目前为止,我还没有搞清楚发生了什么,我还在继续探索。如果你遇到过类似情况,希望你能在评论区分享下。