[英]RStudio/Posit workbench how does it create the URL path
我在瀏覽器的 RStudio/Posit 工作台上本地運行 shiny 應用程序。
該應用程序僅打印其當前的 URL
library(shiny)
ui <- basicPage(
verbatimTextOutput("url")
)
server <- function(input, output, session){
output$url <- renderText({
cd <- session$clientData
url <- paste0(cd$url_protocol, "//", cd$url_hostname, cd$url_pathname)
cat(sprintf("Running on\n %s\n", url))
url
})
}
shinyApp(ui, server, options = list(port = 4218))
例如,當我運行它時,它顯示為: https://POSIT_URL/s/46da136e42a33f0a920f9/p/64dab64d/
。 我對最后一位64dab64d
很感興趣,想知道它是如何創建的。 這取決於端口號,似乎與我的 session 一致。是否可以在應用程序運行之前生成/預測這個數字?
我懷疑它是一個散列值,但我找不到正確的輸入/散列 function。
不完全是答案,而是一種蠻力解決方法:啟動應用程序,打印 URL 並再次停止應用程序。 在 function 中它看起來像這樣
# retrieves the URL for a shiny app
get_full_shiny_url <- function(port) {
server <- function(input, output, session){
shiny::observe(cat(paste0(
session$clientData$url_protocol, "//", session$clientData$url_hostname,
session$clientData$url_pathname, "\n"
)))
shiny::stopApp()
}
capture.output(shiny::shinyApp(shiny::basicPage(), server,
options = list(port = port)))
}
get_full_shiny_url(4812)
#> https://POSIT_URL/s/46da136e42a33f0a920f9/p/64dab64d/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.