Задержка при загрузке CSS на блестящий сервер - PullRequest
0 голосов
/ 17 мая 2018

Прежде всего, довольно плохо знаком с Shiny, так что терпите меня. Я попытался создать R studio блестящую страницу с авторизацией. Первая страница - это страница входа в систему, и если вы пройдете процесс авторизации (например, пользователь и пароль верны), вы попадете на главную страницу Shiny. На самом деле это просто означает, что два разных интерфейса отображаются.

Однако, поскольку реализация страницы авторизации, CSS-код, который меняет цвета боковой панели и заголовка, кажется, запускается с задержкой (как видно из запуска приложения, вы можете заметить, что стиль Shiny по умолчанию загружается на боковую панель, а затем перезаписывается по CSS). В чем может быть проблема здесь?

Код следующий:

ui.R

shinyUI(
fluidPage(

ui <- dashboardPage(

header <- dashboardHeader(uiOutput("header")),
sidebar <- dashboardSidebar(uiOutput("sidebarpanel")),
body <- dashboardBody(uiOutput("body"))
)))

server.R

library(shinydashboard)
library(writexl)
library(shinyjs)
library(shinythemes)
library(openssl)
library(shinyWidgets)

shinyServer(function(input, output, session) {

Logged <- FALSE
USER <<- reactiveValues(Logged = Logged)

my_username <- "demo"
my_password <- "369"

observe({ 
 if (USER$Logged == FALSE) {
  if (!is.null(input$Login)) {
    if (input$Login > 0) {
      Username <- isolate(input$userName)
      Password <- isolate(input$passwd)
      Id.username <- which(my_username == Username)
      Id.password <- which(my_password == Password)
      if (length(Id.username) > 0 & length(Id.password) > 0) {
        if (Id.username == Id.password) {
          USER$Logged <<- TRUE
        }}
       else sendSweetAlert(session = session, title = "Incorrect Username or 
       Password!",
                        text = "Please check.", type = "error",
                         btn_labels = "Ok")

         }}}    
     })

    output$body <- renderUI({ 
    dashboardBody(
          tags$style(HTML('
                  /* logo */
                  .skin-blue .main-header .logo {
                  background-color: #FFFFFF;
                  }

                  /* logo when hovered */
                  .skin-blue .main-header .logo:hover {
                  background-color: #FFFFFF;
                  }

                  /* sidebar */
                  .skin-blue .main-sidebar {
                  background-color: #873260;
                  }

                  /* logo when hovered */
                  .skin-blue .main-header .navbar {
                  background-color: #873260;
                  }
                  ')),

   if (USER$Logged == FALSE) {
        box(title = "Login",textInput("userName", "Username"),
        passwordInput("passwd", "Password"),
        br(),
        actionButton("Login", "Log in")
    )})
})

    output$sidebarpanel <- renderUI({
      if (USER$Logged == TRUE) { 
        dashboardSidebar( 

                    sidebarMenu(
                      menuItem("Home", icon = icon("home")),
                      menuItem("Panel 1", icon = icon("th-large")),
                      menuItem("Panel 2", icon = icon("dashboard")),
                      menuItem("Panel 3", icon = icon("dashboard")),
                      menuItem("Panel 4", icon = icon("pencil")),
                      menuItem("Panel 5", icon = icon("pencil")),
                      menuItem("Panel 6", icon = icon("th"))
                    )
                  )
  }})
})

1 Ответ

0 голосов
/ 18 мая 2018

Внедрение стилей в ui.R, кажется, делает свое дело

shinyUI(
fluidPage(

ui <- dashboardPage(

  header <- dashboardHeader(uiOutput("header")),
  sidebar <- dashboardSidebar(uiOutput("sidebarpanel")),
  body <- dashboardBody(      tags$style(HTML('
                                              /* logo */
                                              .skin-blue .main-header .logo {
                                              background-color: #FFFFFF;
                                              }

                                              /* logo when hovered */
                                              .skin-blue .main-header 
                                              .logo:hover {
                                              background-color: #FFFFFF;
                                              }

                                              /* sidebar */
                                              .skin-blue .main-sidebar {
                                              background-color: #873260;
                                              }

                                              /* logo when hovered */
                                              .skin-blue .main-header .navbar {
                                              background-color: #873260;
                                              }
                                              ')),

    uiOutput("body"))
)))

Тем не менее, было бы неплохо, если бы кто-то мог объяснить, что вызвало эту задержку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...