有人能解决这个问题吗?自从昨晚以来,我一直找不到解决方案。
我尝试将我的应用程序从ruby2.3.x
升级到ruby2.6.x
,并将rails从4.2.x
升级到rails5.2.x
,我的应用程序在我的mac上运行良好,包括资产预编译。
然后使用新的ubuntu os20.04.2 LTS
从旧服务器迁移到新的暂存服务器(gcp(
我在部署和手动运行时遇到了这个错误:
user@app-focal:/var/www/html/app/releases/20211223175449$ RAILS_ENV=staging ~/.rvm/bin/rvm 2.6.8@app do bundle exec rake assets:precompile
I, [2021-12-24T00:56:12.981740 #108442] INFO -- : Writing /var/www/html/app/releases/20211223175449/public/assets/tinymce-5c5b8b58ae365223e6d3f58192e4d1ca79f4b920f237f3d3a985d6221f658c25.js.gz
ruby /var/www/html/app/shared/bundle/ruby/2.6.0/bin/rake assets:precompile: tag.c:181: gumbo_normalized_tagname: Assertion `tag <= GUMBO_TAG_LAST' failed.
Aborted (core dumped)
堆栈:
- rvm 1.29.12
- 捆扎机2.3.0
- ruby 2.6.8
- 轨道5.2.6
- 节点js 14.16.0/16.13.1/17.3.0
这不是解决方案,但我尝试制定短期解决方案。
当你尝试升级rails应用程序时,你需要一个计划,并从各个方面分析你当前的应用程序。
我的问题很常见。我尝试捆绑更新,但我的Gemfile上的一些gem没有设置版本,所以一些gem被升级了,包括nokigiri
。我的应用程序太旧了,尤其是有资产的应用程序。我的资产无法使用新版本的nokogiri
进行预编译,所以我只是降级了它,错误就消失了。
然后我会发现问题,为什么在我的本地机器(mac(运行良好,但在服务器上没有。