uiOutput 不显示闪亮的服务器

uiOutput not displaying with shiny server

我有一个闪亮的应用程序,它在本地运行良好,无论我是在 window 还是在浏览器中打开它,但是在将它放到我们闪亮的服务器上之后,我遇到了一些意外的行为。

我有两个使用 uiOutput 显示的图。第一个在加载数据文件后显示,第二个只是一个缩放图,当用户 select 从第一个图中选择一个区域并双击时出现。将此应用程序放在我们的服务器上并在浏览器中使用后,当用户上传文件时会出现第一个图,但不会显示第二个图(完全空白 - 没有数据点、轴或标签)。

奇怪的是这第二个plot里的数据居然还能交互。我包含了悬停功能,这样当用户将鼠标悬停在第二个图中的一个点上时,会以小文本 window 显示有关该点的信息。即使第二个图从未出现,如果我将鼠标移到图所在的区域上,悬停信息也会正确显示。根据要缩放的区域 select 的大小(即如果它很大),缩放后的图像可能不适合 window 从而需要滚动条。如果我 select 一个大区域进行缩放,滚动条就好像图像在那里一样,但情节就像我说的那样空白。我可以将缩放后的图渲染为 pdf,看起来是正确的,但这不是我想要的。

正如我所说,本地一切正常,只有将应用程序放到我们的服务器上后才会发生这种情况。同样的事情也发生在 Firefox、Safari 和 Chrome 中。这必须与闪亮的服务器有关,但我不知道是什么,因为两个图都以相同的方式呈现。

我已经弄明白了。在 server.R 中,当我生成缩放图时,我在做两件事。首先,我正在创建一个 pdf 如下:

pdf("z_plot.pdf")
plot()
...
dev.off()

这样做的目的是制作一个可以在需要时下载的情节。在此之后,我发出命令以在我闪亮的应用程序中渲染绘图。这一切都是在同一个反应式表达式中完成的,出于某种原因,它在本地工作,但是当 运行 在闪亮的服务器上时,只会生成 pdf。我只需要将绘图命令分成两个反应式表达式,一切正常。