在已出版的 bookdown 书中包含托管在私有服务器中的 Shiny 应用程序

Posted

技术标签:

【中文标题】在已出版的 bookdown 书中包含托管在私有服务器中的 Shiny 应用程序【英文标题】:Including a Shiny app hosted in a private server in a published bookdown book 【发布时间】:2018-02-04 01:37:48 【问题描述】:

我在尝试做我认为我会直截了当的事情时遇到了问题:将托管在 https://www.shinyapps.io/ 中的 Shiny 应用替换为托管在 AWS EC2 服务器中的同一个应用。

我以前的(工作正常,但时间用完了)是:

```r, echo = FALSE, screenshot.opts = list(delay = 15), dev = 'png', 
cache = TRUE, fig.align = 'center', out.width = '90%'
knitr::include_app('http://user.shinyapps.io/least-squares/', height = 
'900px')
```

我在尝试什么:

```r, echo = FALSE, screenshot.opts = list(delay = 15), dev = 'png', 
cache = TRUE, fig.align = 'center', out.width = '90%'
knitr::include_app('http://ec2-35-177-34-200.eu-west-
2.compute.amazonaws.com:3838/least-squares/', height = '900px')
```

您可以看到该应用程序确实在运行

http://ec2-35-177-34-200.eu-west-2.compute.amazonaws.com:3838/least-squares/ [编辑:现已禁用]

此外,第二段代码生成html 文档,这些文档在本地充分显示了应用程序(它们是从.Rmd 文件生成的)。当本书发布到http://bookdown.org时,问题就来了;如果我使用第二段代码(第一段很好),应用程序不会显示。

知道发生了什么吗?

【问题讨论】:

【参考方案1】:

您不能在通过 HTTPS 提供的网页上使用 HTTP 资源。有关更多信息,请参阅此帖子:Allow loading HTTP resources over HTTPS

您在 ShinyApps.io 上托管的应用可以正常运行,因为它是通过 HTTPS 提供的。

【讨论】:

确实,这就是问题所在。更改为 HTTPS,一切都很好。非常感谢!

以上是关于在已出版的 bookdown 书中包含托管在私有服务器中的 Shiny 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

将托管类中包含的非托管指针字段传递给非托管代码

如何在我的 ujson 转储中包含私有属性?

从 Stroustrup 的书中包含 std_lib 时,不理解 VS 中 HelloWorld 上的错误 [重复]

在另一个中包含一个 C 源文件?

配置gitee ssh免密拉取代码-唯一客服系统文档中心

在 Angular 中包含共享资源