如何在shiny中显示SVG图像

3
我想在我的Web应用程序中显示一个SVG图像,该图像托管在images文件夹中。首先我尝试使用标签来显示它,但是没有成功:
ui <- fluidPage(
  tags$img(src = "./images/SVG_Logo.svg", width = "99px")
)

然后我使用了 rsvghtmltools 包:

library(shiny)
library(htmltools)
library(rsvg)

#Load SVG image
miLogo <- rsvg_svg("./images/SVG_Logo.svg", width = 99)
miLogo_html <- as.character(miLogo)

ui <- fluidPage(
  HTML(miLogo_html)
)

server <- function(input, output, session) {

}

shinyApp(ui = ui, server = server)

但我也无法使它工作。在这两种情况下,浏览器都会显示:

SVG Doesn't Work

但是,如果我用以下源路径替换https://upload.wikimedia.org/wikipedia/commons/4/4f/SVG_Logo.svg,那么会发生什么呢?

SVG_OK

它正常工作

有人可以帮我吗?

最好的问候,
Wardiam


您应该尝试分享错误信息和/或屏幕截图,以帮助我们理解问题。 - Claudio Paladini
1个回答

1
这段代码对我有效。我不得不在www文件夹内创建一个images文件夹。你是否创建了一个用于存储资产的www文件夹?
library(shiny)
library(htmltools)

ui <- fluidPage(
  # tags$img(src = "https://raw.githubusercontent.com/paladinic/data/main/LINEA_black.svg", width = "99px")
  tags$img(src = "./images/logo.svg", width = "99px")
)

server <- function(input, output, session) {
  
}

shinyApp(ui = ui, server = server)

enter image description here

enter image description here


谢谢Claudio,但在我的情况下它不起作用。我有一台带有Ventura 13的Macbook Pro。也许这就是问题所在。 - Wardiam
如果我将源路径替换为:https://upload.wikimedia.org/wikipedia/commons/4/4f/SVG_Logo.svg,它可以正常工作,但我更喜欢显示本地图像。 - Wardiam
路径的开头写法可能需要更改。我会测试不同的选项并让我们知道(例如“images / ...”或“/ images / ..”)。另外,您是否看到特定的错误消息? - Claudio Paladini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接