我正在构建一个Shiny应用程序,但由于它应该为构建图表的数据提供参数,我决定将我的应用程序保存为一个函数(使用本教程:http://shiny.rstudio.com/articles/function.html)。
除了我想要包含的javascript和样式表之外,其他一切都正常工作(当我有标准结构时,它工作得更早:ui.R,server.R和js / css文件包含在' www'文件夹)。
我试过: - 在' www'中添加文件像以前一样的文件夹( [script.R,www文件夹:[style.css,script.js]] ) - 将文件添加到单独的文件夹中,但与启动Shiny应用程序的脚本位于同一目录中( [script.R,脚本文件夹:[style.css,script.js]] ) - 在我的脚本启动Shiny应用程序的同一目录中添加文件( [script.R,style.css,script.js] )
对于包含文件我使用的代码如下: 标签$头(标签$脚本(SRC =" graph.js&#34))
当您将Shinny应用程序保存为函数时,您对如何包含脚本有任何建议吗? 提前谢谢!
答案 0 :(得分:3)
对于任何可能遇到同样问题的人,我终于想出了解决方案:-) Shiny中有'include'函数,可以让你指定一个绝对/相对路径的文件。以下是参考:http://shiny.rstudio.com/reference/shiny/latest/include.html
这是我的示例代码:
app <- function(data)
{
shinyApp(
ui = fluidPage(
fluidRow(
# I created a 'www' folder that was included
# in the package that is launching Shiny app
tags$head(includeScript(system.file('www', 'script.js', package = 'myPackage'))),
tags$head(includeCSS(system.file('www', 'style.css', package = 'myPackage'))),
# some UI stuff
)
),
server = function(input, output, session) {
# some server stuff
}
}
答案 1 :(得分:0)
现在不同了。 system.file
不需要includeScript
所以:
tags$head(includeScript(system.file('www', 'script.js', package =
'myPackage')))
将是:
tags$head(includeScript('www/script.js', 'type' = 'text/javascript', 'data-unique-tag' = 'unique'))