为Jekyll站点升级Cloudflare Pages至Ruby 3遇构建失败求助
解决Cloudflare Pages部署Jekyll Chirpy博客时rubygems版本不兼容问题
问题核心
构建报错sass-embedded-1.58.0-x86_64-linux-musl要求rubygems版本>=3.3.22,而当前版本为3.1.2,本质是Chirpy主题依赖的sass-embedded版本过高,与Cloudflare Pages默认Ruby环境的rubygems版本不匹配,且Cloudflare暂不支持Ruby3。回退主题版本无效是因为未锁定依赖版本,bundle仍会拉取高版本sass-embedded。
解决方案
1. 锁定sass-embedded到兼容版本
在项目根目录的Gemfile中添加指定版本的sass-embedded,选择对rubygems要求低于3.3.22的版本(如1.57.1):
gem "sass-embedded", "~> 1.57.1"
执行本地依赖更新:
bundle update sass-embedded
提交更新后的Gemfile和Gemfile.lock到GitHub仓库,触发Cloudflare重新构建。
2. 强制指定Ruby版本适配Cloudflare环境
在Gemfile顶部明确指定Cloudflare支持的Ruby版本(当前为2.7.x),避免依赖拉取不兼容版本:
ruby "~> 2.7.0"
重新执行bundle install更新依赖锁文件后提交。
3. 构建命令中手动升级rubygems(备选方案)
如果上述方法无效,尝试修改Cloudflare Pages的构建命令,先升级rubygems再执行构建:
gem update --system 3.3.22 && bundle exec jekyll b
注意:此方法依赖Cloudflare环境允许全局升级rubygems,若出现权限报错则放弃此方案,优先使用前两种。
内容的提问来源于stack exchange,提问作者user8619111
相关产品推荐
相关产品推荐

