R Markdown设置self_contained仍生成_files目录,如何解决?
解决R Markdown生成独立HTML时额外产生文件目录的问题
问题情况
我尝试用R Markdown结合knitr生成独立的HTML输出,试过以下几种配置组合,但都没达到预期:
- 在YAML头部设置
output: html_document: self_contained: yes(也试过self_contained: TRUE) - 添加
mode: selfcontained配置项 - 在首个代码块里设置
knitr::opts_chunk$set(include = TRUE)
结果还是会生成xxx.html文件,同时多出一个带figure-html子目录的xxx_files文件夹:
- 删掉
figure-html里的图片,HTML里的图表完全不受影响 - 但如果删掉
xxx_files目录,xxx.html也会跟着被删掉
问题根源
查清楚了,是代码块的缓存设置在搞鬼——只要代码块里开启了缓存(比如设了cache = params$evaluate$cache或者直接写cache = TRUE),knitr就会生成这个xxx_files缓存目录,哪怕开了self_contained也没法阻止。
修复方法
选下面任意一种操作就能解决:
- 把YAML里的
params:evaluate:cache改成FALSE - 删掉代码块里的
cache = params$evaluate$cache参数
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

