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

重置电脑后无法本地运行已有Jekyll站点,寻求解决方案

GitHub Pages本地预览报错排查与解决

问题背景

电脑恢复出厂设置后,重新下载GitHub Pages站点代码仓库,按指南安装了ruby、jekyll和bundler。推送新博客文章到GitHub仓库正常,但执行bundle exec jekyll serve进行本地预览时出现报错。已添加webrick依赖,未执行jekyll new [myblog]命令,怀疑现有文件与新安装的版本存在冲突。

报错信息

⠠⠵ bundle exec jekyll serve
/Users/adamg/.gem/ruby/3.1.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:29: warning: Pathname#untaint is deprecated and will be removed in Ruby 3.2.
/Users/adamg/.gem/ruby/3.1.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:118: warning: Pathname#untaint is deprecated and will be removed in Ruby 3.2.
/Users/adamg/.gem/ruby/3.1.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:118: warning: Pathname#untaint is deprecated and will be removed in Ruby 3.2.
/Users/adamg/.gem/ruby/3.1.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:35: warning: Pathname#untaint is deprecated and will be removed in Ruby 3.2.
/Users/adamg/.gem/ruby/3.1.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:35: warning: Pathname#untaint is deprecated and will be removed in Ruby 3.2.
/Users/adamg/.gem/ruby/3.1.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:44: warning: Pathname#untaint is deprecated and will be removed in Ruby 3.2.
/Users/adamg/.gem/ruby/3.1.3/gems/bundler-1.17.3/lib/bundler/shared_helpers.rb:118: warning: Pathname#untaint is deprecated and will be removed in Ruby 3.2.
bundler: failed to load command: jekyll (/Users/adamg/.gem/ruby/3.1.3/bin/jekyll)
LoadError: cannot load such file -- rexml/parsers/baseparser
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/html.rb:10:in `require'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/html.rb:10:in `<top (required)>'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown/html.rb:10:in `require'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown/html.rb:10:in `<top (required)>'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown/paragraph.rb:14:in `require'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown/paragraph.rb:14:in `<top (required)>'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown.rb:342:in `require'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown.rb:342:in `<class:Kramdown>'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown.rb:60:in `<module:Parser>'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown.rb:19:in `<module:Kramdown>'
  /Users/adamg/.gem/ruby/3.1.3/gems/kramdown-1.13.2/lib/kramdown/parser/kramdown.rb:17:in `<top (required)>'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/lib/jekyll/converters/smartypants.rb:1:in `require'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/lib/jekyll/converters/smartypants.rb:1:in `<top (required)>'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/lib/jekyll.rb:11:in `require'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/lib/jekyll.rb:11:in `block in require_all'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/lib/jekyll.rb:10:in `each'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/lib/jekyll.rb:10:in `require_all'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/lib/jekyll.rb:186:in `<top (required)>'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/exe/jekyll:6:in `require'
  /Users/adamg/.gem/ruby/3.1.3/gems/jekyll-3.5.2/exe/jekyll:6:in `<top (required)>'
  /Users/adamg/.gem/ruby/3.1.3/bin/jekyll:25:in `load'
  /Users/adamg/.gem/ruby/3.1.3/bin/jekyll:25:in `<top (required)>'

当前Gemfile内容

source 'https://rubygems.org'

gem "github-pages", '163', group: :jekyll_plugins

# enable tzinfo-data for local build
# gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw]
gem 'jekyll-paginate'

# gem "webrick", "~> 1.8"
gem "webrick"

解决方案

1. 修复缺失的rexml依赖

报错核心是LoadError: cannot load such file -- rexml/parsers/baseparser,Ruby 3.0+版本已不再默认包含rexml库,而当前使用的旧版kramdown(1.13.2)依赖该库。需手动添加rexml到Gemfile:

gem "rexml"

执行bundle install更新依赖后,重新尝试运行预览命令。

2. 解决版本兼容性问题

  • 当前安装的Ruby 3.1.3与github-pages 163对应的Jekyll 3.5.2、Bundler 1.17.3存在版本不兼容:旧版工具不支持Ruby 3.x的部分特性,导致出现Pathname#untaint弃用警告。
  • 两种调整方向:
    • 降级Ruby到2.7.x版本(github-pages 163官方推荐的Ruby版本),可使用rbenv或rvm工具管理多版本Ruby;
    • 升级github-pages到最新兼容版本,但需注意升级可能导致现有主题、配置出现兼容性问题,需提前备份并测试调整。

3. 清理旧依赖缓存

执行以下命令清理缓存,确保依赖安装状态正确:

bundle clean --force
bundle install

4. 检查配置文件

执行bundle exec jekyll doctor命令,排查站点配置文件中可能存在的语法或逻辑问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 05:45:53