我是Shiny个应用程序的新手,但我设法构建了一个界面,允许我根据可以在网址上找到的图像从图像网址列表中进行 Select .当我在RStudio上执行Run App时,该应用程序运行良好,但一旦我try 从外部功能调用它,图像就不再显示(仅显示缩略图).由于脚本相当长,我在进行了一些调试后设法在基于shiny 项目示例的MRE上重新创建了效果.

library(shiny)

app_ui <- fluidPage(
    
    # Application title
    titlePanel("Old Faithful Geyser Data"),
    
    # Sidebar with a slider input for number of bins and an image
    sidebarLayout(
        sidebarPanel(
            sliderInput("bins", "Number of bins:", min = 1, max = 50, value = 30),
            # Inserting the image
            img(src = "/prova/1.jpg", height = "300px", width = "100%")
        ),
        
        # Show a plot of the generated distribution
        mainPanel(
            plotOutput("distPlot")
        )
    )
)

# Define server logic required to draw a histogram
app_server <- function(input, output) {
    
    output$distPlot <- renderPlot({
        # generate bins based on input$bins from ui.R
        x    <- faithful[, 2]
        bins <- seq(min(x), max(x), length.out = input$bins + 1)
        
        # draw the histogram with the specified number of bins
        hist(x, breaks = bins, col = 'darkgray', border = 'white',
             xlab = 'Waiting time to next eruption (in mins)',
             main = 'Histogram of waiting times')
    })
}

# Run the application 
app <- shinyApp(ui = app_ui, server = app_server)

如果我有一个不同的R脚本(external.R),其中我像这样调用文件MainApp.R中包含的应用程序,图像就会崩溃.

source("path_to_app/MainApp.R")
app

enter image description here

事实上,我注意到了一种更奇怪的行为.如果我先使用Run App个应用程序,则从外部文件获取图像时也会正确显示.如果我清理环境并try 直接获取来源,图像将不会显示.图像似乎被缓存在某个地方.

我的文件夹 struct 是

Shinyapp
   |- MainApp.R
   |- external.R
   |- www
    | |- prova
      | |- 1.jpg

推荐答案

您的文件夹 struct 和请求路径正确.正如shiny docs注释:

www/目录下的静态文件在以/开头的请求路径下自动可用

奇怪的是,当您源external.R时,图像根本就被显示.我怀疑这可能是RStudio的一些魔法,如果您在浏览器中打开URL,您将看不到图像.

无论如何,问题在于您正在使用shiny::shinyApp(),它从serverui R对象创建应用程序.

但是,您需要目录和收件箱的上下文,因此您希望使用shiny::runApp()来传递当前文件夹.

shiny::runApp()预期为ui.Rserver.R,或app.R.因此,在您的情况下,将mainApp.R重命名为app.R,那么external.R的内容可以简单地是:

shiny::runApp()

enter image description here

R相关问答推荐

R数据帧中的布尔加法会产生布尔值而不是整值

如何提高以键ID为列的表中键查找的效率?

强制相关图以显示相关矩阵图中的尾随零

高质量地将R格式的图表从Word中输出

Tidyverse/Djirr为从嵌套列表中提取的列名赋值的解决方案

带有gplot 2的十字舱口

更改编号列表的 colored颜色

多重RHS固定估计

pickerInput用于显示一条或多条geom_hline,这些线在图中具有不同 colored颜色

gt()从gt为相同内容的单元格 colored颜色 不同?

用黄土法确定区间

在数学中正确显示摄氏度、开氏度或华氏度

错误:非常长的R行中出现意外符号

将文件保存到新文件夹时,切换r设置以不必创建目录

如何在ggplot2中绘制具有特定 colored颜色 的连续色轮

根据另一列中的值和条件查找新列的值

R -如何分配夜间GPS数据(即跨越午夜的数据)相同的开始日期?

正则表达式在第二个管道和第二个T之后拆分R中的列

根据约束随机填充向量的元素

判断函数未加载R中的库