如何避免Quarto每次都重新构建博客站点?
解决Quarto博客推送GitHub时全页面重渲染的问题
针对你设置freeze: auto但仍全量渲染的情况,可从以下几个方向排查:
检查
_freeze目录的Git状态:Quarto的freeze功能依赖_freeze目录存储已渲染页面的缓存数据。如果你的.gitignore文件中包含_freeze/,导致该目录未被提交到仓库,那么每次GitHub Actions运行时都没有缓存可用,只能重新渲染所有页面。需移除.gitignore中对_freeze/的忽略规则,将该目录提交到Git仓库。配置GitHub Actions缓存:即使
_freeze目录已提交,也可以在工作流中添加缓存步骤,确保_freeze目录在每次Action运行时被保留。示例配置如下:- name: Cache freeze directory uses: actions/cache@v3 with: path: _freeze key: ${{ runner.os }}-freeze-${{ hashFiles('**/*.qmd', '_quarto.yml') }} restore-keys: | ${{ runner.os }}-freeze-排查全局依赖文件变动:
freeze: auto会监测全局依赖(比如_quarto.yml、主题文件、全局样式/脚本)的变化,如果这些文件有修改,所有依赖它们的页面都会触发重渲染。确认近期是否改动过这类全局文件。检查页面级配置冲突:个别页面的YAML前置元数据中如果设置了
freeze: false,会覆盖全局的freeze: auto配置,导致该页面每次都重渲染。可批量检查所有.qmd文件的前置配置。
内容的提问来源于stack exchange,提问作者Philippe Massicotte
相关产品推荐
相关产品推荐

