使用Jekyll部署GitHub Pages遇更新失败与构建报错求助
问题描述
提交推送文件变更后执行网站部署,使用的deploy.yml配置如下:
name: deploy on: push: branches: - master - main pull_request: branches: - master - main workflow_dispatch: permissions: contents: write jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v3 - name: Setup Ruby uses: ruby/setup-ruby@v1 with: ruby-version: '3.2.2' bundler-cache: true - name: Update _config.yml ⚙️ uses: fjogeleit/yaml-update-action@v0.13.1 with: commitChange: false valueFile: '_config.yml' propertyPath: 'giscus.repo' value: ${{ github.repository }} - name: Install and Build 🔧 run: | pip3 install --upgrade jupyter npm install -g mermaid.cli npm install -g purgecss export JEKYLL_ENV=production bundle exec jekyll build --lsi purgecss -c purgecss.config.js - name: Deploy 🚀 if: github.event_name != 'pull_request' uses: JamesIves/github-pages-deploy-action@v4 with: folder: _site
执行命令bin/deploy --user时触发错误,日志关键内容:
Layout source: site github-pages 228 | Error: Liquid syntax error (line 17): Unknown tag 'bibliography'
同时存在两个疑问:
- 不确定当前Jekyll版本变化带来的影响
- 站点URL未在GitHub Pages显示,疑似和Docker有关
解决方案
1. 修复「Unknown tag 'bibliography'」错误
该错误是因为Jekyll缺少处理bibliography标签的插件,按以下步骤处理:
- 在
_config.yml的plugins字段中添加对应插件:plugins: - jekyll-scholar - 在Gemfile中添加插件依赖:
gem 'jekyll-scholar' - 执行
bundle install安装插件,重新尝试构建部署。
注意:如果依赖GitHub Pages官方构建,第三方插件如jekyll-scholar不被支持,必须使用当前自定义Action的部署方式,确保插件能被正确加载。
2. 统一Jekyll版本
日志显示当前使用GitHub Pages v228对应的Jekyll 3.9.3,需确保本地与Action环境版本一致:
- 在Gemfile中明确指定版本:
gem 'jekyll', '3.9.3' gem 'github-pages', '228', group: :jekyll_plugins - 执行
bundle update更新依赖,消除版本差异。
3. 解决站点URL不显示问题
- 检查GitHub Pages设置:进入仓库「Settings」→「Pages」,确认部署来源分支和目录选择正确(如
gh-pages分支的/root目录)。 - 确认Action部署状态:查看Actions日志,检查
Deploy步骤是否成功将_site目录内容推送到指定分支。 - 同步Docker环境配置:如果本地用Docker开发,需确保容器内Ruby、Jekyll版本与Action环境一致,且已安装所有依赖插件,避免本地与线上构建差异。
内容的提问来源于stack exchange,提问作者rivana
相关产品推荐
相关产品推荐

