在Rhino框架的Shiny应用中嵌入Markdown文件失败的技术求助
在Rhino框架的Shiny应用中嵌入R Markdown内容
方法1:动态渲染R Markdown文件
Rhino默认以项目根目录作为工作目录,和普通Shiny常用的app/目录不同,因此需要指定完整的相对路径来定位文件:
- 将你的
my_markdown.Rmd放在项目内的指定目录,比如app/content/(目录可自定义,只要路径对应即可)。 - 在Shiny的UI代码中调用
includeMarkdown时传入完整路径:
column(8, align = "left", includeMarkdown("app/content/my_markdown.Rmd"))
方法2:预渲染为HTML(推荐,符合Rhino最佳实践)
Rhino提倡提前编译静态资源以优化性能,因此更推荐先将R Markdown渲染为HTML再嵌入:
- 运行以下代码,把Rmd文件渲染到Rhino的静态资源目录
app/www/:
rmarkdown::render( input = "my_markdown.Rmd", output_file = "app/www/my_markdown.html" )
- 在Shiny UI中通过
includeHTML直接嵌入预渲染的HTML:
column(8, align = "left", includeHTML("app/www/my_markdown.html"))
如果是长内容,也可以用iframe实现独立滚动区域:
column( 8, align = "left", tags$iframe( src = "my_markdown.html", width = "100%", height = "800px", frameborder = 0 ) )
注意事项
- 确保R Markdown所需的依赖包已在Rhino的
DESCRIPTION文件中声明,避免运行时缺失依赖。 - 若使用动态渲染,需在
global.R或对应模块中加载rmarkdown包。
内容的提问来源于stack exchange,提问作者user165673
相关产品推荐
相关产品推荐

