Shiny App嵌入图片无法正常显示的问题求助
解决Shiny App中图片无法显示的问题
你的目录结构其实完全符合Shiny的要求(www文件夹和app.R同级是官方指定的静态资源存放位置),图片不显示大概率是几个小细节问题导致的,我们一步步排查解决:
1. 移除无效的deleteFile参数
你在tags$img里添加的deleteFile=FALSE是多余的——这个参数是fileInput这类组件的属性,不属于HTML <img> 标签的合法属性,会干扰标签的正常解析,先把它删掉。
2. 改用Shiny内置的img()函数(推荐)
Shiny提供了专门的img()函数来生成图片标签,比直接用tags$img更简洁且不易出错,修改后的UI代码如下:
ui<-fluidPage( titlePanel('Example title'), tabsetPanel( tabPanel("example ui", sidebarPanel(width = 4, dateInput("daterange_process", "Select date", value = "2021-11-01")), mainPanel(column(width = 10,h4("Process map"), img(src="processmapexample.png", height ="200px", width="300px", alt="something went wrong"))) )#end of tabpanel )#end of tabset panel )#end of fluidpage/UI server<-function(input,output,session){ options(scipen=999) rv <- reactiveVal(NULL) observe({ })#end of observe } shinyApp(ui,server)
3. 检查文件名的大小写匹配
如果你的操作系统是Linux或macOS,文件名是严格区分大小写的!比如ProcessMapExample.png和processmapexample.png会被视为两个完全不同的文件,一定要确保代码里的文件名和www文件夹里的完全一致(包括大小写、后缀名)。
4. 确认运行App的工作目录正确
- 用RStudio运行时:确保你打开的是
testapp文件夹里的app.R,再点击"Run App"按钮——RStudio会自动把工作目录设置为app.R所在的testapp文件夹,这样Shiny才能找到同级的www文件夹。 - 用命令行运行时:先通过
setwd("path/to/testapp")切换到testapp目录,再执行runApp()启动应用。
5. 清除浏览器缓存
有时候浏览器会缓存旧的资源,导致新图片无法加载。可以尝试:
- 强制刷新页面(Windows:
Ctrl+F5;macOS:Cmd+Shift+R) - 用隐私/无痕窗口打开App测试
按照以上步骤调整后,你的图片应该就能正常显示了。
内容的提问来源于stack exchange,提问作者metaltoaster
相关产品推荐
相关产品推荐

