如果你想在普通的闪亮应用程序中包含图像,你可以调用
shiny::img(src = "imgName.png")
Run Code Online (Sandbox Code Playgroud)
在您的 ui 函数中具有以下目录结构:
| shinyApp/
| ui.R
| server.R
| www/
| myImage.png
Run Code Online (Sandbox Code Playgroud)
如何在一个闪亮的应用程序(也是一个 r 包)中复制它?我尝试以完全相同的方式执行所有操作,但使用以下目录结构,但没有成功:
| packageName/
| R
| app.R # contains ui.R and server.R
| inst
| www
| imgName.png
Run Code Online (Sandbox Code Playgroud)
就其价值而言,就我而言,该包实际上捆绑了一个闪亮的模块,但我认为这与此问题无关。
用于addResourcePath添加对 Shiny Web 服务器可见的目录。
如文档https://shiny.rstudio.com/reference/shiny/1.0.2/addResourcePath.html所述
使用给定的路径前缀将静态资源目录添加到 Shiny 的 Web 服务器。主要供包作者为其组件提供支持的 JavaScript/CSS 文件。
它应该允许您引用包中的任何文件。
小智 5
Divad Nojnarg 的“ CaPO4 sim ”可以找到一个工作示例,如我提出的有关在shinydashboardPlus 用户描述中引用本地图标文件的问题中所述。
总之,引用本地图像文件的一种方法是在目录zzz.R中添加文件R/。
.onAttach <- function(libname, pkgname) {
shiny::addResourcePath('www',
system.file('www',
package = 'DailyMeasure'))
}
Run Code Online (Sandbox Code Playgroud)
其中包名称是DailyMeasure。
图像文件位于inst/www/imgname.png.
该文件在 Shiny 的服务器部分被引用,如下所示......
output$user <- shinydashboardPlus::renderUser({
shinydashboardPlus::dashboardUser(
name = UserConfig()$Fullname[UserConfig()$AuthIdentity == Sys.info()[["user"]]],
src = 'www/imgname.png', # this depends on addResourcePath in zzz.R
subtitle = Sys.info()[["user"]], ... )})
Run Code Online (Sandbox Code Playgroud)