【问题标题】:rmarkdown - Files in shared folders not workingrmarkdown - 共享文件夹中的文件不起作用
【发布时间】:2017-05-12 14:28:02
【问题描述】:

我无法在共享文件夹中正确查看 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 选项并且崩溃停止了,但 fonts/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。

有什么想法吗?

【问题讨论】:

    标签: r knitr r-markdown pandoc


    【解决方案1】:

    抱歉,原来是 Internet Explorer 中的权限问题。当 HTML 文件在 Chrome 中打开时,它可以工作。

    【讨论】:

    • IE 以兼容模式打开共享驱动器\文件夹上的文档。您可以通过将 <meta http-equiv="X-UA-Compatible" content="IE=edge"/> 添加到 html 文件的头部来覆盖此行为。然后你的文件应该在 IE 中打开就好了。
    • 谢谢,它可以工作,但我必须在输出 HTML 的头部手动添加标签。当我尝试使用 include in_header 时,在脚本标签之后添加了标签,然后行为是相同的。
    • 我也注意到了。我有一些代码可以在今天下午发布。
    【解决方案2】:

    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)
    

    【讨论】:

      猜你喜欢
      • 2014-08-27
      • 1970-01-01
      • 2014-07-11
      • 2022-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多