正如这里和这里所描述的那样,有几种可能将一个闪亮的应用程序开发成一个包并在线托管它。一种常见的方法是将ui.R和server.R文件包含在包中的inst-Directory中,并作为包的一部分编写一个函数,使用该文件调用runApp()。
然而,要在网上启动这个打包的应用程序,必须修改服务器上的文件结构,或者必须通过创建另一个skript来调用启动应用程序的功能。据我所知,这是在shinyapps.io上不可能。
由于我想/必须使用shinyapps.io,我的问题是:如何在shinyapps.io上最好地部署打包应用程序?一种可能是将包上传到CRAN,手动将ui.R和server.R文件复制到一个新的应用程序中,包括包(除了UI和服务器逻辑之外,还可以访问包中包含的所有其他功能),然后在shinyapps.io上部署这个应用程序。但是:还有其他/更好的可能性吗?
发布于 2018-11-21 19:11:23
您可以尝试将您的包上传到CRAN上,并在您的shinyApp中调用它。这将为您提供包的所有功能,以及其他可能对您的包感兴趣的人。这样做的缺点是,您将不得不经历大量的格式化、文档化、错误检查、重建等等。CRAN对包必须“看起来”如何接受和托管它有相当严格的规则。至少在检查时必须有0错误和0警告。
如果您不想在CRAN上托管它,您只需将包中的所有函数都包含在目录中,并在Shinyapp中source这些文件。您可以在global.R文件中,甚至在server.R文件中,但在服务器函数之外执行此操作。
-应用程序目录/
-全球。
-服务器。
-功能1.R
-功能2.R
- function_etc.R
然后,通过在global.R / server.R文件中包含这些命令来获取它们:
source("www/function1.R")
source("www/function2.R")
source("www/function_etc.R")您也可以直接将所有的函数放在您的全局/服务器文件中,但是它们的来源可能更有组织,更易于维护。
-应用程序目录/
-全球。
-服务器。
https://stackoverflow.com/questions/53413813
复制相似问题