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

Shiny应用迁移至Ubuntu服务器后在线无法切换标签页

排查思路
  • 检查浏览器控制台错误:公网访问时打开浏览器开发者工具(F12),切换到Console标签,点击无反应的标签页,查看是否有JS报错(如资源加载失败、变量未定义等)。Shiny标签页切换依赖前端JS,这类报错通常不会出现在Shiny Server日志中。

  • 对比版本差异:

    • 在原服务器和新服务器分别运行sessionInfo(),对比R版本、Shiny包版本、相关依赖包(如shinydashboard、htmltools等)的版本是否一致。
    • 运行shiny-server --version检查新服务器上Shiny Server的版本,确认与原服务器是否存在差异。
  • 验证静态资源加载:

    • 在开发者工具的Network标签下刷新页面,检查所有JS、CSS资源(如shiny.js、dashboard.js)是否成功加载(状态码200)。若出现404或加载失败,可能是Shiny Server静态资源路径配置错误,或文件权限不足。
    • 检查默认静态资源目录/usr/lib/shiny-server/resources/的权限,确保www-data用户(Shiny Server默认运行用户)拥有可读权限。
  • 测试极简版应用:
    编写一个仅包含基础标签页的测试应用,部署到新服务器的Shiny Server上,验证标签页是否能正常切换。如果测试应用正常,说明原应用存在组件或依赖问题;若仍异常,则指向Shiny Server或系统环境配置问题。
    示例测试代码:

    library(shiny)
    library(shinydashboard)
    
    ui <- dashboardPage(
      dashboardHeader(title = "Test Tabs"),
      dashboardSidebar(),
      dashboardBody(
        tabBox(
          tabPanel("Tab 1", "Content 1"),
          tabPanel("Tab 2", "Content 2")
        )
      )
    )
    
    server <- function(input, output) {}
    
    shinyApp(ui, server)
    
  • 检查运行用户权限:

    • 确认Shiny Server以www-data用户运行,若应用需要读取本地文件,需确保www-data对这些文件有访问权限。可执行sudo -u www-data R,尝试加载应用所需数据或依赖,查看是否有报错。
  • 查看系统级日志:

    • 查看/var/log/syslog或反向代理相关日志(如/var/log/apache2/),搜索shiny相关条目,排查是否有隐藏的系统级错误。
  • 对比HTML渲染结构:

    • 在本地RStudio运行和公网访问时,分别查看页面源代码,对比标签页的HTML结构是否一致。若公网版本的HTML存在缺失或结构异常,可能是Shiny Server渲染过程出现问题。

内容的提问来源于stack exchange,提问作者Laas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 21:01:20