Приложение не обновляет PDF, отображаемый в теге $ iframe - PullRequest
1 голос
/ 09 июля 2019

У меня есть файл PDF, который постоянно обновляется и перезаписывается.Он сохраняется в каталоге www рабочего каталога Shiny.Проблема в том, что изменения не отображаются в приложении.Приложение по-прежнему отображает первую версию PDF.

У меня изначально все было в интерфейсе.Я использовал tags$iframe в коде ui.r, а src указывал прямо на файл PDF в каталоге www.

Затем я заметил, что pdf не обновляется, поэтому я попытался создать кнопку действия, которая при нажатии запускала бы tags$iframe и отображала pdf.Это не решило проблему.Обновления в файле pdf по-прежнему не отображаются.

Первая попытка со всем в пользовательском интерфейсе


ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      h3("Title")
    ), 
    mainPanel(
      tabsetPanel(
        tabPanel("Tab 1", 
                 tags$iframe(style="height:1200px; width:100%; scrolling=yes", 
                  src="PDF1.pdf"))

      )
    )
 )

)


server <- function(input, output,session){

    }

shinyApp(ui, server)

Вторая попытка с помощью кнопки действия

library(shiny)

ui <- fluidPage(
  sidebarLayout(
    sidebarPanel(
      h3("Title")
    ), 
    mainPanel(
      tabsetPanel(
        tabPanel("Tab1", 
                 sidebarLayout(
                    sidebarPanel(
                        actionButton("refresh_1", "Refresh PDF")
                    ),
                    mainPanel( 
                        uiOutput("Show_PDF1")
                    )
                )
        )

      )
    ))
)



server <- function(input, output,session){
  observeEvent(input$refresh_1, {
    output$Show_PDF1 <- renderUI({
        tags$iframe(style="height:1200px; width:100%; scrolling=yes", src="PDF1.pdf")
    })
  })  

}

shinyApp(ui, server)

IЯ размещаю приложение на непрофессиональной версии сервера и получаю к нему доступ через Chrome.Чтобы воссоздать проблему, вы можете поместить любой файл PDF в каталог /srv/shiny-server/www с именем PDF1.pdf и получить доступ к приложению.Затем перезапишите PDF1.pdf другим файлом PDF и снова запустите приложение.Вы увидите, что приложение по-прежнему отображает оригинальный файл PDF1.pdf.

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