У меня есть файл 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.