gpt4 book ai didi

ruby-on-rails - Rails 5.2 服务器在未预编译 Assets 时挂起

转载 作者:行者123 更新时间:2023-12-03 16:35:17 29 4
gpt4 key购买 nike

自从我们将项目的依赖项从 rails 4.2 升级到 rails 5.2 以来,我们遇到了问题

我们同时使用 sprockets Assets 和 Webpacker。首次启动服务器并加载第一个页面(任何页面)时,它会在提供页面内容之前挂起。

它通常卡在这样的线上,没有其他输出:

I, [2020-05-15T10:28:20.828146 #66077]  INFO -- : [fd7f1413-7d72-402f-92f9-95688e7fa50e]   Rendered partials/_front_page_featured_items.html.haml (172.4ms)

ruby 进程似乎空闲,不使用 CPU。

我通过运行 rails assets:precompile 意识到这一点在运行服务器之前,它不会再挂起,即使我删除了 public/assets 和 public/packs 目录中的预编译 Assets 。

我可以通过以下方式重现它:
  • 删除tmp/cache的内容

  • 我们可以在至少 3 台开发机器和 CI 服务器上重现这一点。

    在rails 4.2分支中,我们没有这个问题,我们有相同版本的Webpacker(4.2.2)。

    rails 4.2 分支和 5.2 在 Assets 方面的主要区别在于从 sprockets 3.7 升级到 4.0,以及所有其他依赖项更改。

    我被困在调试这个问题上,希望能在如何进一步调试这个问题、获得更多输出到日志等方面得到一些帮助。

    更新 :我在 gemfile 中禁用了 webpacker,它仍然卡住

    更新 #2 : 在 sprockets 上发现了一个相关问题: https://github.com/rails/sprockets/issues/640 .我相信这和我遇到的问题是一样的。

    最佳答案

    添加后问题似乎得到解决:

    if Rails.env.development? || Rails.env.test?
    Sprockets.export_concurrent = false
    end

    application.rb
    根据 https://github.com/rails/sprockets/issues/640 ,Sprockets 中存在一个可能发生死锁的错误,这是一个解决方法。

    关于ruby-on-rails - Rails 5.2 服务器在未预编译 Assets 时挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61815931/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com