包含 HTML 文件的闪亮应用程序在命令中运行时不会呈现图像

Posted

技术标签:

【中文标题】包含 HTML 文件的闪亮应用程序在命令中运行时不会呈现图像【英文标题】:Shiny App that include HTML files doesnt render images when is running in command 【发布时间】:2022-01-22 06:17:30 【问题描述】:

为什么在r studio中运行一个闪亮的应用程序会显示所有由html添加的图像,而批量运行时却没有?

例如,我有一个简单的应用程序,它调用一个包含 2 个图像的 html 文件,在 r studio 中,该应用程序看起来很完美,但是在命令中它不起作用。

它不会显示任何类型的错误或警告,就像它无法识别图像一样。

如何纠正?

app.R

library(shiny)

ui <- tagList(
  includeHTML("www/htmlFile.html")
)

server <- function(input, output, session) 
  


shinyApp(ui, server)

htmlFile.html

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <title>page1</title>
  </head>
  <body>
    
    <h3>Hello world!!</h3>
    <img src="img1.jpg"/>
    <img src="img2.jpg"/>
    
  </body>
</html>

所以我从命令行运行闪亮的应用程序:

R.exe CMD BATCH app.R

【问题讨论】:

“批量运行”是什么意思? 我的意思是使用 -- R.exe CMD BATCH 脚本运行脚本。命令中的 R。 (不知道是不是正确的说法,请见谅) 【参考方案1】:

我们可以试试renderImage。这是一个例子:

# download some images and save them in the project directory
download.file("https://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/R_logo.svg/1200px-R_logo.svg.png", destfile = "r.png")
download.file("https://pngset.com/images/r-logo-r-programming-language-logo-text-building-alphabet-dryer-transparent-png-2749164.png", destfile = "r2.png")

library(shiny)

ui <- fluidPage(
  withTags(
    head(meta(`http-equiv` = "content-type", content = "text/html; charset=utf-8", title("page1")))
  ),
  h3("Hello World!!"),
  imageOutput("img1"),
  imageOutput("img2")
)

server <- function(input, output, session) 
  output$img1 <- renderImage(
    list(
      src = "r.png",
      width = 250,
      hight = 250
    )
  , deleteFile = TRUE)

  output$img2 <- renderImage(
    list(
      src = "r2.png",
      width = 250,
      hight = 250
    )
  , deleteFile = TRUE)


shinyApp(ui, server)

【讨论】:

非常感谢您的回答。但是,这不是我正在寻找的解决方案,我需要获取 html 文件,因为它包含特定格式,而不仅仅是图像。 图像位于 www 文件夹中?另一种选择是将图像托管在某些云服务中并从互联网上检索它们。 标签对本地文件不是很友好,至少在闪亮时是这样。 好的,谢谢!我在下面发布了我的解决方案【参考方案2】:

我设法通过运行另一个运行 app.R 的脚本来修复它

运行.R

shiny :: runApp ('app.R')

在命令中:

"R.exe" CMD BATCH "run.R"

【讨论】:

以上是关于包含 HTML 文件的闪亮应用程序在命令中运行时不会呈现图像的主要内容,如果未能解决你的问题,请参考以下文章

闪亮的服务器不会加载应用程序

在 chrome 中运行时,cordova.js 不可用

如果在循环中包含PHP中的文件,它每次在循环中运行时都会访问该文件吗?

在 PyCharm 中运行时记录 basicConfig 不创建日志文件?

Spark在本地运行但在YARN中运行时找不到文件

在 SSIS 中运行时根据源文件夹选择数据库名称