我注意到每当我想创建一个新的闪亮应用程序时,我必须在新的app文件夹中创建一个新的app.R文件。如果我将'app.R保存为新文件夹中另一个闪亮的应用程序,并根据当前用途进行修改,则会创建UI但服务器似乎无法正常工作。那是为什么?
答案 0 :(得分:2)
看看按下"运行应用程序" button - 在控制台中执行的命令是shiny::runApp(appDir)
。它没有专门运行app.R
文件,但它运行整个目录。这是您第一次看到这种行为的暗示--Shiny希望将应用程序作为目录而不是文件运行,因此当您在同一文件夹中有不同的应用程序文件时,原始应用程序可能仍然存在跑步。
这引导我调查runApp
函数。如果您查看runApp
的文档,您会看到第一个参数是appDir
:
应用程序的目录。应该包含server.R,plus, ui.R或包含文件index.html的www目录。 或者,代替server.R和ui.R,目录可能包含 只是app.R.默认为工作目录。而不是目录, 这可能是一个包含ui和服务器组件的列表,或者是一个Shiny应用程序 对象由shinyApp创建。
所以你有它 - runApp
(因此"运行应用程序"按钮)使用目录作为Shiny应用程序的参数。 Shiny希望这个目录有server.R
和ui.R
或只有app.R
,但它没有说明当你有一个或多个{的组合时的行为{ {1}}或者不是上述内容,所以你应该避免这种情况。