代码之家  ›  专栏  ›  技术社区  ›  jesstme

闪亮的应用程序在本地加载,部署时与服务器断开连接

  •  0
  • jesstme  · 技术社区  · 7 年前

    我的应用程序在本地运行良好。我可以与它交互,等等。但当在全球部署时,它会立即抛出“与服务器断开连接”错误。我已经在谷歌上搜索了好几天,已经尝试了我知道如何尝试的一切。

    第一件事:

    • 我尝试卸载然后重新安装了一堆软件包
    • 我更新了我使用的所有软件包
    • 我的数据(csv)只有17MB(3列,1M行)
    • 我检查了设置,将启动超时更改为300,并系统地逐个更改了其他设置。
    • 我已经从头到尾阅读了浏览器的JavaScript日志。它们没有什么意义(可能是因为我不懂JavaScript),但没有什么明显的突出之处。

    我在RStudio中的“Deploy”日志表明部署成功:

    Preparing to deploy application...DONE
    Uploading bundle for application: 193997...DONE
    Deploying bundle: 994423 for application: 193997 ...
    Waiting for task: 489405538
      building: Building image: 992534
      building: Fetching packages
      building: Installing packages
      building: Installing files
      building: Pushing image: 992534
      deploying: Starting instances
      rollforward: Activating new instances
      terminating: Stopping old instances
    Application successfully deployed to https://jesstme.shinyapps.io/shinynames/
    Deployment completed: https://jesstme.shinyapps.io/shinynames/
    

    https://jesstme.shinyapps.io/shinynames/

    服务器代码:

    #set wd & environment----
    setwd("/Users/OldJess/Dropbox/R Stuff (Home)/ShinyNames")
    
    #load packages------
    library(datasets)
    library(ggplot2)
    library(viridis)
    library(ggthemes)
    library(gridExtra)
    library(dplyr)
    library(rdrop2)
    library(shiny)
    library(devtools)
    
    #base <- read.csv("data/NationalNamesBrief.csv", stringsAsFactors = FALSE,     row.names = NULL, na.strings = c("NA","","#MULTIVALUE"))
    
    #temporary df for demonstration purposes
    base <- structure(list(Name = c("Ellie", "Ellie", "Ellie", "Ellie", "Ellie", 
                                "Ellie"), 
                       Year = c(1880L, 1881L, 1882L, 1883L, 1883L, 1884L), 
                       Gender = c("F", "F", "F", "F", "M", "F"), 
                       Count = c(17L, 27L, 37L, 24L, 7L, 28L)), 
                  .Names = c("Name", "Year", "Gender", "Count"), 
                  row.names = c(NA, 6L), class = "data.frame")
    
    #clean data----
    base$name <- tolower(base$Name)
    base$MF <- as.factor(base$Gender)
    
    #add ranking data by Year
    base <- base %>%
      group_by(Year) %>%
      arrange(Year, desc(Count)) %>%
      mutate(Rank = row_number())
    
    #add ranking data by Year AND Gender
    base <- base %>%
      group_by(Year, Gender) %>%
      arrange(Year, desc(Count)) %>%
      mutate(GenderRank = row_number())
    
    #create functions----
    #function to create line & heat charts
    lineHeatCharts <- function(pickaname){
      pickanameLower <- tolower(pickaname)
      subDf <- subset(base[base$name == pickanameLower,])
      heat <- ggplot(subDf, aes(x = Year, y = MF, fill = Count)) +
        scale_fill_viridis(name = "",
                       option = "B", 
                       limits = c(0, max(subDf$Count))) +
        geom_tile(color = "white", size = 0) +
        theme_tufte() +
        theme(axis.text.x = element_text(angle = 90, vjust = 1, hjust = 1),
          axis.ticks.x = element_blank()) +
        scale_x_continuous(breaks = seq(min(subDf$Year), 
                                    max(subDf$Year), by = 5)) +
        labs(x = "Year", y = "")
      line <- ggplot(subDf, aes(x = Year, y = Count, fill = MF)) +
    geom_line(aes(colour = factor(subDf$Gender)), size = 1.5) +
    theme_tufte() +
    theme(axis.text.x = element_blank(),
          axis.ticks.x = element_blank()) +
    scale_x_continuous(breaks = seq(min(subDf$Year), 
                                    max(subDf$Year), by = 5)) +
    labs(x = "", y = "", color = "")
      return(grid.arrange(line, heat, 
                      ncol = 1, nrow = 2,
                      heights = c(5, 2), top = max(subDf$Name)))
    } 
    
    # Define server logic 
    function(input, output) {
    
      output$view <- renderPlot({
        lineHeatCharts(input$list)
      })
    }
    

    library(shiny)
    library(shinythemes)
    
    # Define UI for dataset viewer application
    fluidPage(theme = shinytheme("flatly"),
    
      # Application title
      titlePanel("First Names on U.S. Social Security Applications, 1880 - 2014"),
    
      sidebarLayout(
        sidebarPanel(
          textInput(inputId = "list", label = "Enter a name:", value = "Ellie"),
    
          helpText("Note: This page will take about 30 seconds to load the first     time you open it. Data are from US Social Security applications via data.gov. For privacy, only names with at least 5 babies per year are included. Errors in Social Security form submission, like incorrect sex, are not corrected. Names with special characters and spaces are not included."),
    
      submitButton("Refresh View")
    ),
    
    mainPanel(
      h4(""),
      plotOutput("view")
        )
      )
    )
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Pork Chop    7 年前

    试试这个:

    #set wd & environment----
    #setwd("/Users/OldJess/Dropbox/R Stuff (Home)/ShinyNames")
    
    #load packages------
    library(datasets)
    library(ggplot2)
    library(viridis)
    library(ggthemes)
    library(gridExtra)
    library(dplyr)
    library(shiny)
    library(shinythemes)
    
    #base <- read.csv("data/NationalNamesBrief.csv", stringsAsFactors = FALSE,     row.names = NULL, na.strings = c("NA","","#MULTIVALUE"))
    
    #temporary df for demonstration purposes
    base <- structure(list(Name = c("Ellie", "Ellie", "Ellie", "Ellie", "Ellie", "Ellie"), 
                           Year = c(1880L, 1881L, 1882L, 1883L, 1883L, 1884L), 
                           Gender = c("F", "F", "F", "F", "M", "F"), 
                           Count = c(17L, 27L, 37L, 24L, 7L, 28L)), 
                      .Names = c("Name", "Year", "Gender", "Count"), 
                      row.names = c(NA, 6L), class = "data.frame")
    
    #clean data----
    base$name <- tolower(base$Name)
    base$MF <- as.factor(base$Gender)
    
    #add ranking data by Year
    base <- base %>%
      group_by(Year) %>%
      arrange(Year, desc(Count)) %>%
      mutate(Rank = row_number())
    
    #add ranking data by Year AND Gender
    base <- base %>%
      group_by(Year, Gender) %>%
      arrange(Year, desc(Count)) %>%
      mutate(GenderRank = row_number())
    
    #create functions----
    #function to create line & heat charts
    lineHeatCharts <- function(pickaname){
      pickanameLower <- tolower(pickaname)
    
      if(!any(base$name %in% pickanameLower)){
        return()
      }
    
      subDf <- subset(base[base$name == pickanameLower,])
      heat <- ggplot(subDf, aes(x = Year, y = MF, fill = Count)) +
        scale_fill_viridis(name = "",
                           option = "B", 
                           limits = c(0, max(subDf$Count))) +
        geom_tile(color = "white", size = 0) +
        theme_tufte() +
        theme(axis.text.x = element_text(angle = 90, vjust = 1, hjust = 1),
              axis.ticks.x = element_blank()) +
        scale_x_continuous(breaks = seq(min(subDf$Year),  max(subDf$Year), by = 5)) +
        labs(x = "Year", y = "")
      line <- ggplot(subDf, aes(x = Year, y = Count, fill = MF)) +
        geom_line(aes(colour = factor(subDf$Gender)), size = 1.5) +
        theme_tufte() +
        theme(axis.text.x = element_blank(),
              axis.ticks.x = element_blank()) +
        scale_x_continuous(breaks = seq(min(subDf$Year), 
                                        max(subDf$Year), by = 5)) +
        labs(x = "", y = "", color = "")
      return(grid.arrange(line, heat, ncol = 1, nrow = 2, heights = c(5, 2), top = max(subDf$Name)))
    } 
    
    ui <- fluidPage(theme = shinytheme("flatly"),
    
                    # Application title
                    titlePanel("First Names on U.S. Social Security Applications, 1880 - 2014"),
    
                    sidebarLayout(
                      sidebarPanel(
                        textInput(inputId = "list", label = "Enter a name:", value = "Ellie"),
    
                        helpText("Note: This page will take about 30 seconds to load the first     time you open it. Data are from US Social Security applications via data.gov. For privacy, only names with at least 5 babies per year are included. Errors in Social Security form submission, like incorrect sex, are not corrected. Names with special characters and spaces are not included."),
    
                        submitButton("Refresh View")
                      ),
                      mainPanel(
                        h4(""),
                        plotOutput("view")
                      )
                    )
    )
    
    server <- function(input, output, session) {
    
      output$view <- renderPlot({
        lineHeatCharts(input$list)
      })
    }
    
    shinyApp(ui, server)
    

    enter image description here

        2
  •  0
  •   jesstme    7 年前

    结果有两个问题: 1) 我需要移除 setwd() 我的代码第二行 2) 闪亮的原木不起作用。