关于 r:Link to a local html file on RMarkdown with Shiny | 珊瑚贝

Link to a local html file on RMarkdown with Shiny


我有一个带有闪亮的交互式 RMarkdown 文档(即在 YAML 标头中使用 runtime: shiny 行),在其中我想创建一个指向本地 html 文件的链接。但到目前为止我没有尝试过任何工作。

为了这个例子,假设我的工作目录中有以下文件:

  • 工作目录/

    • rmarkdown_with_shiny.Rmd
    • 闪亮的应用程序.R
    • 万维网/

      • my_file.html

我想做的是在 rmarkdown_with_shiny.Rmd 中创建一个链接,单击该链接会打开文件 www/my_file.html。

文件 rmarkdown_with_shiny.Rmd 中的代码如下,包括我尝试过的所有内容,但到目前为止没有任何效果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    —
    title:”Rmarkdown with shiny”
    output: html_document
    runtime: shiny
    —

    [link_1](www/my_file.html)
    [link_2](my_file.html)
    [link_3](file://www/my_file.html)

    “`{r shiny_links, echo=F, eval=T}
    renderUI(tags$a(“link_4″, href=”my_file.html”, target=”_blank”))
    renderUI(tags$a(“link_5″, href=”www/my_file.html”, target=”_blank”))
    renderUI(tags$a(“link_6″, href=”file://www/my_file.html”, target=”_blank”))

    shinyAppFile(“shiny_app.R”)
    “`

最后一行 shinyAppFile(“shiny_app.R”) 我可以嵌入一个包含工作链接的应用程序(当应用程序单独运行时),但一旦嵌入它就不再工作了。这是 shiny_app.R:

中的代码

1
2
3
4
5
6
7
8
9
10
    library(‘shiny’)

    ui <- fluidPage(
        htmlOutput(“link”)
    )

    server <- function(input, output) {
      output$link <- renderUI(tags$a(“single_link”, href=”my_file.html”, target=”_blank”))
    }
    shinyApp(ui = ui, server = server)

令人困惑的部分是,如果这行 [link_1](www/my_file.html) 只是 rmarkdown 而没有闪亮,它会起作用。如果它只是一个闪亮的应用程序renderUI(tags$a(“single_link”, href=”my_file.html”, target=”_blank”)),这条线会起作用。但是在带有 runtime: shiny 的 rmarkdown 文件中,这些都不起作用。

如果有人能告诉我如何在 rmarkdown 闪亮文件中链接本地 html 文件,我将不胜感激。特别是如果有办法使用闪亮的函数而不是 MarkDown 语法来做到这一点。但无论哪种解决方案都受到欢迎,只要它创建一个有效的链接。

  • 我知道您说文件名为 rmarkdown_with_shiny.Rmd,但只是想检查它是否绝对正确。当文件名包含空格时,我遇到了 runtime: shiny 的一些奇怪行为。所以我的建议是确保文件名中没有空格或非ASCII字符。
  • 是的,文件名只包含字母和下划线,它就是rmarkdown_with_shiny.Rmd。没有空格或非 ascii 字符。


基本上,当我们运行 Shiny 应用程序时,www 文件夹的内容是在内部嵌入的,我们不需要将 www 文件夹包含到 href 属性中。
但是,如果我们想通过 runtime: shiny”公开”这些内容,我们需要添加 shiny::addResourcePath() 函数并指定其文件夹:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
    —
    title:”Rmarkdown with shiny”
    output: html_document
    runtime: shiny
    —

    “`{r setup, include = FALSE}
    library(knitr)
    library(shiny)
    library(here)
    shiny::addResourcePath(prefix =”www”, directoryPath = here::here(“www”))
    “`

    Relative File Path: [My HTML file](www/my_file.html)

    Relative File Path: My HTML file  
    Absolute File Path: shinyapps.io

    Relative File Path:
    “`{r shiny-relative-links, echo = FALSE, eval = TRUE}
    tags$a(href=”www/my_file.html”,
       tags$span(style =”color: #03a9f4″,”My HTML file”),
       target =”_blank”)
    “`

    Absolute File Path:
    “`{r shiny-absolute-links, echo = FALSE, eval = TRUE}
    tags$a(href=”http://www.shinyapps.io/”,
       tags$span(style =”color: #03a9f4″,”shinyapps.io”),
       target =”_blank”)
    “`

有关原始解决方案和讨论,请参见此处。另外,致敬这里的包。


来源:https://www.codenong.com/60326689/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9791.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?