我无法在共享文件夹中看到正确的rmarkdown HTML输出。
我正在使用
生成报告rmarkdown::render('myfile.rmd')
输出HTML包含图像和DT :: datatable。当我在计算机中打开它时,render()生成的文件工作正常。如果我通过电子邮件将HTML文件发送给同事,他们可以毫无问题地看到它。
只要将HTML文件复制到服务器中的共享文件夹,它就不再正确呈现:所有DT :: datatable都丢失了,而且字体显示不正确。
我也试过了:
rmarkdown('myfile.rmd', output_dir = 'shared_folder/', output_file = 'myreport.html')
这也行不通。 Rmd文件位于我的本地计算机中,output_dir是共享文件夹。该文件正确地写在共享文件夹中,但是当我尝试打开它时,我遇到了和以前一样的问题。
最初,共享文件夹中的网页会使Internet Explorer崩溃。我在Rmd文件中添加了mathjax:null选项并且崩溃停止了,但是字体/ DT :: datatable缺失问题仍在继续:
output:
html_document:
mathjax: null
我的本地硬盘是NTFS,共享文件夹文件系统也是NTFS。
rmarkdown显示的pandoc选项是(个人信息被抑制):
+RTS -K512m -RTS myfile.utf8.md --to html
--from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash
--output myfile.html
--smart --email-obfuscation none
--self-contained --standalone --section-divs
--template "C:\Users\[...]\Documents\R\win-library\3.3\rmarkdown\rmd\h\default.html"
--no-highlight
--variable highlightjs=1
--variable "theme:simplex"
--include-in-header "C:\Users\[...]\AppData\Local\Temp\Rtmpqm2YlA\rmarkdown-str18ab05327b00.html"
在Windows 7中运行R 3.3.2。
有什么想法吗?
答案 0 :(得分:0)
Internet Explorer以兼容模式打开共享驱动器和文件夹中的文件。您可以通过将<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
添加到HTML文档的头部来覆盖此行为。
但是使用in_header YAML标记不起作用。我相信这是因为Pandoc将这些标记放在标题部分的末尾,并且IE要求此标记在标题中较早出现。为了解决这个问题,我使用以下代码生成IE兼容文件,这些文件将从网络驱动器中存储和访问:
knitr::knit("myfile.rmd")
HtmlList <- readLines("myfile.html")
HtmlList[HtmlList == "<head>"] <- "<head> <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />"
fileConn <- file("myfile.html")
writeLines(HtmlList, fileConn)
close(fileConn)