Shinymeta在本地工作,但发布到Shinyapps.io时会中断

时间:2019-08-17 02:02:18

标签: r shiny shinyapps

我正在探索令人兴奋的新Shinymeta软件包,该软件包可从有光泽的应用程序生成可再现的代码。按照示例here,我制作了一个可以在本地计算机上运行的应用程序,但发布到Shinyapps.io时失败了。

下面是一个最小的示例,它再现了该错误,即在本地正常运行,但是在发布到shinyapps.io时失败。

app.R

library(shiny)
library(shinymeta)
library(ggplot2)
library(shinyAce)

ui <- fluidPage(
    outputCodeButton(plotOutput("p1"))
)


server <- function(input, output) {

    output$p1 <- metaRender(renderPlot, {
        hist(diamonds$carat)
    })


observeEvent(input$p1_output_code, {
    code <- expandChain(output$p1())
    displayCodeModal(code)
})    

}
shinyApp(ui, server)

在我的本地环境中,此代码可以正常工作。该应用通过上方的“显示代码”按钮显示diamonds$carat的直方图。单击“显示代码”按钮,将打开一个框,其中包含通过hist(diamonds$carat)函数传递的生成图形所需的代码行(即expandChain())。

当我将应用程序发布到Shinyapps.io时,该应用程序呈现正常。但是,当我单击“显示代码”按钮时,代码不会出现,并且应用程序与服务器断开连接。

我在macOS上运行R 3.6.1。我有一个免费的Shinyapps.io帐户(但是我的其他实践中的闪亮应用程序已发布,没有任何问题)。

谢谢您的任何建议。

1 个答案:

答案 0 :(得分:0)

检查shinapps.io上的日志,问题似乎出在clipr软件包中。这是shinymeta的依赖项,但是由于某种原因,它似乎没有像其他依赖项那样被自动调用。将以下代码添加到app.R文件中可解决此问题:

library(clipr)