3

我是 Shiny 的新手,但对 R 并不陌生。由于工作原因,我现在正在 RStudio 服务器中进行 R 开发。它在 Google Compute Engine 上运行,如果这有什么不同的话。RStudio 服务器运行良好,但 Shiny 有问题。

安装闪亮之后,我运行了示例命令:

runExample("01_hello")

起初,这带来了 Hello Shiny!应用程序,但一切都是灰色的。我重新启动了 RStudio,清理了工作区,然后再次运行了命令。现在弹出一个窗口,但它立即消失。我尝试重新启动 RStudio 服务器,并在不同的浏览器中运行,但行为仍在继续。

我已经尝试快速单击“在浏览器中打开”按钮,这让我在浏览器中获得了一个灰色的选项卡,就像我重新启动之前一样。

有什么建议么?谢谢你。

编辑:

当我启动示例时,RStudio 控制台会给出:

Listening on http://127.0.0.1:4096

然后就坐在那里,直到我按 esc。

IE 控制台没有给出任何错误(尽管我也不确定我是否正确使用它——不是网络人,抱歉)。

Chrome 控制台确实给出了一个错误:

'webkitRequestAnimationFrame' 是特定于供应商的。请改用标准的“requestAnimationFrame”。

其中有一个指向 VM320:6635 的链接,内容如下:

function _b(b,c){var d=b;var e=Gni(function(){var a=wj();d.Df(a)});return $wnd.webkitRequestAnimationFrame(e,c)}

4

3 回答 3

2

在我的 VPS 上安装 RStudio Server 和 Shiny Server 后,我遇到了同样的问题,然后尝试配置 Apache 代理,以便我可以使用 www.example.com/rstudio 访问 IDE 而不是默认的 www.example.com: 8787。

一开始我做错了,和你有同样的问题,但在这里我找到了正确的解决方案:https: //support.rstudio.com/hc/en-us/articles/200552326-Running-with-a-Proxy

直接原因是缺少 websocket 代理配置:

ProxyPassMatch ^/rstudio/p/([0-9]+)/(websocket|.*/websocket)/$ ws://localhost:8787/p/$1/$2/
于 2015-11-02T18:38:08.713 回答
1

我已经弄清楚了我的问题,主要是。启动 Shiny 应用程序后,窗口仍然关闭,但现在我可以导航到 Shiny 应用程序。这足以让我认为这是固定的。

我必须做两件事。首先,我必须使用 GCE 的命令行打开 Shiny 正在侦听的端口,这是这里的第二个答案,使用命令行:How to open a specific port such as 9090 in Google Compute Engine

然后,我必须使用以下命令启动 Shiny 应用程序:

runExample("01_hello", host="0.0.0.0", port=9999)

这也适用于runApp命令。9999 是您使用 GCE 打开的端口号,host=0.0.0.0似乎告诉 Shiny 侦听外部连接(来自 in-R?runApp帮助文档)。你需要把 0.0.0.0 放进去,而不是你机器的 IP 或类似的东西。

即使在我启动示例时窗口仍然关闭,我仍然可以使用端口号导航到实例的外部 IP 并使用 Shiny 应用程序。

谢谢你们的帮助。如果您认为还有什么应该说的,请随时发表评论。

于 2014-11-24T20:11:01.910 回答
1

要测试问题是在 RStudio 服务器中还是在其他地方,在 R 中运行这个单文件应用程序(复制粘贴到 R 终端):

library(shiny)
server <- function(input, output) {
  output$distPlot <- renderPlot({
    hist(rnorm(input$obs), col = 'darkgray', border = 'white')
  })
}

ui <- shinyUI(fluidPage(
  sidebarLayout(
    sidebarPanel(
      sliderInput("obs", "Number of observations:", min = 10, max = 500, value = 100)
    ),
    mainPanel(plotOutput("distPlot"))
  )
))

shinyApp(ui = ui, server = server)

我发现谷歌小组讨论Rstudio 服务器问题,所以它可能是某种兼容性问题。

于 2014-11-22T07:00:13.630 回答