You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shiny应用部署shinyapps.io后下载的Rmarkdown HTML报告无法渲染图片

问题解决方法

问题根源

rmarkdown渲染报告时默认使用临时目录作为工作目录,你仅向Rmd传递了图片的相对路径,渲染时无法从临时目录定位到shiny应用根目录下的图片文件;同时here包的根目录判定逻辑在shinyapps.io的运行环境和本地开发环境不一致,进一步导致路径解析错误。

你之前复制文件到www目录的逻辑仅用于适配shiny前端的资源查找规则,和后端Rmd渲染的路径逻辑无关,所以会出现前端图片正常显示、但报告生成失败的情况。

修复方案

该方案同时兼容本地运行和shinyapps.io部署环境,不需要额外做两套配置:

  • 第一步:在shiny应用中提前获取图片的绝对路径,再传递给Rmd参数
    在app.R中读取到pca文件名后,新增一行代码获取绝对路径:
pca <- list.files(pattern="*pca_check.png")
# 新增以下行,获取图片的绝对路径
pca_abs <- normalizePath(pca[[1]], mustWork = TRUE)

修改downloadHandler中的参数传递逻辑,将绝对路径传给Rmd:

params <- list(pca = pca_abs)
  • 第二步:简化Rmd中的图片引用逻辑
    修改report.Rmd中的图片引用代码,不需要再调用here包,直接使用传入的绝对路径即可:
```{r out.width="70%"}
knitr::include_graphics(params$pca)
---
内容的提问来源于stack exchange,提问作者lecb
相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:36:00