我有一个保存的html小部件(来自传单(,我想在闪亮的应用中显示。
使用includeHTML()
在UI.R中给出时可起作用,但使用renderUI()
动态调用时不行。我有许多.html文件,我希望用户可以选择一个选择输入,因此我需要动态解决方案。
Shiny App中此流行帖子显示HTML文件中接受的答案具有动态解决方案,但对我不起作用。没有错误,也没有任何错误。
总结:
works
ui <- fluidPage(
includeHTML("foo.html")
)
不起作用
ui <- fluidPage(
htmlOutput("map")
)
server <- function(input,output){
output$map <- renderUI({
includeHTML(path = "foo.html")
})
}
这篇文章也是相关的,但找不到解决方案。
问题是,编织.RMD文件使用<html><head><title><body>
等创建HTML文档等。而fluidPage()
则做得完全相同。因此,将完整的HTML文档包括在fluidPage()
中会由于冗余而产生问题。幸运的是,有一个非常简单的解决方案:在编织并将其保存为.html文档之前,请在.rmd文件的YAML标头中使用output: html_fragment
。
一种可能的解决方案:在server.R
中,您需要以下内容:
output$inc <- renderUI(includeHTML("./foo.html"))
请使用相对路径。在ui.R
fluidRow(box(htmlOutput("inc"), width =12))