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

Shiny App that include HTML files doesnt render images when is running in command

为什么 运行在 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

我们可以试试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)

我设法通过 运行 另一个运行 app.R

的脚本修复了它

run.R

shiny :: runApp ('app.R')

命令中:

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