如何在局域网内通过IP和端口运行含Shiny的R-markdown演示文稿?
如何在局域网内分享带Shiny内容的R Markdown演示文稿
当然可以做到!带Shiny交互组件的R Markdown文档(也就是Shiny R Markdown)确实没法靠单纯编织成HTML文件来分享——毕竟它需要后台运行Shiny服务器才能支撑交互功能。不过你完全可以参照独立Shiny应用的部署方式,在局域网内通过指定IP和端口来分享它,具体操作如下:
核心操作:用
rmarkdown::run()启动服务
R的rmarkdown包专门提供了run()函数,用来启动包含Shiny内容的Rmd文档的交互式服务,用法和你熟悉的runApp()非常相似:rmarkdown::run( file = "你的Shiny Rmd文件路径.Rmd", host = "0.0.0.0", # 允许局域网内所有设备访问 port = 1234 # 自定义你想用的端口号 )host = "0.0.0.0"是关键,它让你的R会话监听电脑上所有可用的网络接口,这样局域网内的其他设备就能通过你的电脑IP访问这个演示。- 记得把
file参数替换成你的Rmd文件的实际路径,比如"./my_interactive_demo.Rmd"或者完整的绝对路径。
局域网内其他设备的访问步骤
当你运行上面的代码后,只需要告诉同事/伙伴:- 先获取你电脑在局域网内的IP地址(Windows用
ipconfig命令,Mac/Linux用ifconfig或ip addr查看) - 在他们的浏览器地址栏输入
http://你的局域网IP地址:1234,就能直接打开这个带Shiny交互的演示文稿了。
- 先获取你电脑在局域网内的IP地址(Windows用
几个需要注意的细节
- 确保你的电脑防火墙允许指定端口(比如1234)的入站连接,不然其他设备可能会被拦截。
- 如果1234端口被其他程序占用,换个未被使用的端口就行,比如8080、3838这类常见的Shiny端口。
- 只要你的R会话保持运行,这个演示服务就会一直在线;关闭R或者终止代码运行后,服务就会停止。
内容的提问来源于stack exchange,提问作者Antarqui
相关产品推荐
相关产品推荐

