Passenger 和 Apache 遇到“sassc-rails”Gem 加载错误

问题描述 投票:0回答:1

我在使用 Passenger 和 Apache 部署 Ruby on Rails 应用程序时遇到问题。由于与 sassc-rails 相关的 Gem 加载错误,应用程序无法启动。错误信息如下:

There was an error while trying to load the gem 'sassc-rails'.
Gem Load Error is:
/var/www/myapp/vendor/bundle/ruby/3.3.0/gems/ffi-1.17.0-x86_64-linux-gnu/lib/ffi/function.rb:65:in `attach'
/var/www/myapp/vendor/bundle/ruby/3.3.0/gems/sassc-2.4.0/lib/sassc/native.rb:40:in `attach_function'
/var/www/myapp/vendor/bundle/ruby/3.3.0/gems/sassc-2.4.0/lib/sassc.rb:31:in `require_relative'
/var/www/myapp/vendor/bundle/ruby/3.3.0/gems/sassc-rails-2.1.2/lib/sassc/rails.rb:5:in `<main>'
/var/www/myapp/config/application.rb:12:in `<top (required)>'
/var/www/myapp/config/environment.rb:2:in `require_relative'
config.ru:3:in `block in <main>'
/usr/local/rvm/gems/ruby-3.3.6@myapp/gems/passenger-6.0.24/src/helper-scripts/rack-preloader.rb:101:in `preload_app'

环境详情:

Ruby Version: 3.3.6
Rails Version: 8
Passenger Version: 6.0.24
sassc-rails Version: 2.1.2
ffi Version: 1.17.0

采取的步骤:

重建sassc-rails Gem:执行bundle pristine sassc-rails和gem install sassc-rails以确保gem正确安装。 资产预编译:运行rails asset:precompile,成功完成,没有错误。 临时解决方法:注释掉 ffi gem 的 function.rb 文件中的第 65 行。这允许服务器启动,但我知道这不是一个正确的解决方案。

附加信息:

应用程序在开发环境中运行没有问题。 仅当使用 Passenger 和 Apache 进行部署时才会出现此问题。 我已验证所有系统依赖项都是最新的。

请求帮助: 我正在寻求有关使用 Passenger 和 Apache 在生产环境中解决此 sassc-rails gem 加载错误的指导。具体来说,我想了解:

这个错误的根本原因。 为什么注释掉 ffi gem 的 function.rb 文件中的第 65 行可以让服务器启动。 不修改gem源码的情况下解决这个问题的正确做法。

任何见解或建议将不胜感激。

ruby-on-rails ruby apache passenger passenger-apache
1个回答
0
投票

您可以尝试将 sass-rails gem 降级到 6.0 以上的旧版本。 5.1 可能不需要 sassc gem。

© www.soinside.com 2019 - 2024. All rights reserved.