You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jekyll本地运行失败:HTTParty常量未初始化及gem依赖问题

解决方案

核心问题分析

  1. NameError: uninitialized constant HTTParty::ConnectionAdapter::OpenSSL:旧版HTTParty未适配Ruby 3.x的常量引用规则,Ruby 3.x要求绝对路径引用顶层常量(需加::前缀),旧版HTTParty直接写OpenSSL导致找不到常量。
  2. eventmachine 1.2.7 gemspec语法错误:该版本仅兼容Ruby 2.x,其gemspec中的语法(如字符串插值、块写法)在Ruby 3.x下不兼容。

分步解决

1. 对齐GitHub Pages官方依赖版本

GitHub Pages提供的github-pages gem会自动管理所有Jekyll及插件的兼容版本,彻底避免手动版本冲突:

  • 打开项目根目录的Gemfile,确保内容包含:
    source "https://rubygems.org"
    gem "github-pages", group: :jekyll_plugins
    
  • 删除旧的Gemfile.lock文件(若存在)

2. 清理旧gem缓存并重新安装依赖

  • 清理eventmachine旧版本缓存:
    gem cleanup eventmachine
    
  • 重新安装所有兼容依赖:
    bundle install
    
  • 若仍提示eventmachine版本问题,强制更新到兼容Ruby 3.x的版本:
    bundle update eventmachine
    

3. 验证本地运行

执行启动命令确认错误消失:

bundle exec jekyll serve --trace

4. 前端依赖适配(若项目包含)

如果项目有前端构建工具(如npm包),更新前端依赖以适配Node 18:

npm install

额外说明

  • 不要手动指定Jekyll、HTTParty等依赖的具体版本,github-pages gem会同步GitHub Pages线上环境的依赖版本,确保本地与线上运行一致。
  • Ruby 3.x对旧语法兼容性更严格,尽量使用官方维护的最新兼容依赖版本,避免锁定过旧的gem版本。

内容的提问来源于stack exchange,提问作者Beinje

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:40:02