本地图像不显示在shiny Rmd应用程序中,而是直接显示在shiny R应用程序中

问题描述 投票:0回答:1

我有一个 RMarkdown Shiny 应用程序,想要显示图像。在该图像的顶部我将显示一些 htmlOutput。 A 找到了一个运行良好的 R Shiny 应用程序示例。图像本地存储在 www 文件夹中。 但是,当我使用 RMarkdown 闪亮应用程序尝试此操作并将完整的 R 代码复制到 R 代码块中时,这将不起作用。

这是 R闪亮应用程序的代码。对于带有代码的 Rmd 文件,只需创建一个新的 RMarkdown 闪亮文档,并添加一个新的 R 代码块,其中包含以下行作为代码。我在这个问题模板中插入 Rmd 文件时遇到格式问题,因此无法使用 Rmd 代码发布它......

library(shiny)

# Define UI
ui <- fluidPage(
  
  # Application title
  titlePanel("Count"),
  
  # Sidebar
  sidebarLayout(
    sidebarPanel(
      textInput("txt1", "Enter the text1 to display below:",
                value = 52)
    ),
    # Show an image with a counter
    mainPanel(
      fluidRow(
         column(
          6,
          div(
            style = "
                   margin-left:0%;
                    display: inline-block;
                    text-align: center;
                    position: absolute;
                ",
            img(
              src = "/Schema_BB_NKB_real.jpg",
              height = 400,
              width = 800,
              style = "  position: relative;"
            ),
            span(htmlOutput("default1"),
                 style = "
              color: orange;
              font-size: 20px;
              font-style: bold;
                 position: relative;
                 text-align: center;
                 width: 100px;
                 top: -100px;
                 "
            )
          )
        )
      )
    )
  )
)

# Define server logic required to draw a histogram
server <- function(input, output) {
  output$default1 <- renderUI({
    str2 <- input$txt1
    str1 <- paste("You")
    HTML(paste("str1:", input$txt1, sep = '<br/>'))
  })
}

# Run the application
shinyApp(ui = ui, server = server)

我尝试使用 addRessourcePath 进行一些操作,但这仅在我使用文件夹的绝对路径时才有效。当我将此应用程序复制到我的服务器时,这将不再起作用。

现在应该是 Rmd 文件代码:

---
title: "text on image"
author: "me"
date: "2023-12-17"
output: html_document
runtime: shiny
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

```{r shiny app, echo=FALSE}
library(shiny)
# Define UI
ui <- fluidPage(
  
  # Application title
  titlePanel("Count"),
  
  # Sidebar
  sidebarLayout(
    sidebarPanel(
      textInput("txt1", "Enter the text1 to display below:",
                value = 52)
    ),
    # Show an image with a counter
    mainPanel(
      fluidRow(
         column(
          6,
          div(
            style = "
                   margin-left:0%;
                    display: inline-block;
                    text-align: center;
                    position: absolute;
                ",
            img(
              src = "/Schema_BB_NKB_real.jpg",
              height = 400,
              width = 800,
              style = "  position: relative;"
            ),
            span(htmlOutput("default1"),
                 style = "
              color: orange;
              font-size: 20px;
              font-style: bold;
                 position: relative;
                 text-align: center;
                 width: 100px;
                 top: -100px;
                 "
            )
          )
        )
      )
    )
  )
)

# Define server logic required to draw a histogram
server <- function(input, output) {
  output$default1 <- renderUI({
    str2 <- input$txt1
    str1 <- paste("You")
    HTML(paste("str1:", input$txt1, sep = '<br/>'))
  })
}

# Run the application
shinyApp(ui = ui, server = server)
```

css r shiny r-markdown
1个回答
0
投票

您可以尝试将其添加到您的第一个代码块中:

    library(shiny)
    library(here)
    shiny::addResourcePath(prefix = "www", directoryPath = here::here("www"))

然后用以下方式调用您的图像:

 img(src = "www/Schema_BB_NKB_real.jpg")

请参阅类似的讨论

© www.soinside.com 2019 - 2024. All rights reserved.