如何安排闪亮的模块文件,以便它们在闪亮的服务器上运行?

Posted

技术标签:

【中文标题】如何安排闪亮的模块文件,以便它们在闪亮的服务器上运行?【英文标题】:How to arrange shiny modules files so that they run on Shiny Server? 【发布时间】:2019-12-03 19:02:18 【问题描述】:

我正在尝试将应用程序放在服务器上。它位于正确的位置,因为我之前放置了其他应用程序。但是,这是我第一次使用模块。

我在 ui.R 中有 UI,在 server.R 中有服务器,其余的(所有非响应式代码 + 作为服务器和 UI 的模块的响应式函数)在 global.R 中。所有这些都在同一个目录中。当我通过 runApp() 在本地运行它时,一切正常。

看起来好像服务器没有看到 global.R 文件什么的。我应该如何安排文件以使其正常工作?

ui.R

shinyUI(fluidPage(
    sidebarPanel(
      typUI('UI_maps')
    ),
    mainPanel(
      conditionalPanel('input.typ != "hydrologiczne"', ns = NS('UI_maps'),
                       column(6, mapUI('map1')),
                       column(6, mapUI('map2'))
      ),
      conditionalPanel('input.typ == "hydrologiczne"', ns = NS('UI_maps'),
                       column(6, mapUI('map3')),
                       column(6, mapUI('map4'))
      )
    )
))

server.R

shinyServer(function(input, output, session) 
  callModule(map_m, 'map1', tabela_meteo, woj)
  callModule(map_m, 'map2', tabela_meteo, woj)
  callModule(map_h, 'map3', tabela_hydro, woj)
  callModule(map_h, 'map4', tabela_hydro, woj)
  callModule(typ, 'UI_maps', tabela_hydro, tabela_meteo)
)

global.R 是有效的实现。当我尝试通过浏览器连接它时,我得到了

'发生错误。应用程序无法启动。应用程序在初始化期间退出。'

没有日志返回到服务器(或者我找不到它们)。有什么建议吗?

【问题讨论】:

【参考方案1】:

好的,我想通了。

问题在于 sf 包,在我的示例中它使用了这些东西:

GEOS 3.6.1、GDAL 2.2.3、PROJ 4.9.3

在正常的 sf 安装过程中,无法将它们安装到服务器上。应该手动安装它们,然后将 sf 包加载从 pacman::p_load() 更改为 library() 以免更新这些东西并且每次都失败应用程序启动导致崩溃。

【讨论】:

以上是关于如何安排闪亮的模块文件,以便它们在闪亮的服务器上运行?的主要内容,如果未能解决你的问题,请参考以下文章

在 R 闪亮的模块中使用 actionButton + insertUI 创建多个输入

将数据拖放到闪亮的应用程序中

闪亮的服务器和安装包

闪亮的应用程序模块:使用传单提取在服务器函数中创建的输入

我可以在闪亮的模块中使用 updateTextInput() 吗?

是否可以使用 NGINX 将多个闪亮的应用程序部署到一台服务器?