我在闪亮的应用程序的输出表中生成托管在(本地)闪亮服务器上的静态HTML页面的链接。由于每次从用户的搜索输入生成表格,我都会根据搜索结果动态创建链接。生成的链接包括对路径的添加(随每个会话而改变):例如, http://myServer.org/myApp/app095c75e71384b9d0dd0018637b10fa00/myStaticPage.html。是否有可能为所有用户和应用会话生成一个稳定的链接,理想情况下,中间没有无意义的字符串?
这是整个应用布局,其中包含用于生成链接的代码段:
#server.R:
dt=read_csv("path/To/data.csv")
shinyServer <- function (input, output) {
res.table=eventReactive(input$submit, {
res=dt
upVal=as.numeric(input$value)
res=subset(res,res$val>value)
return(res)
}
output$res=DT::renderDataTable({
res=res.table()
#processes the name string to extract the reference name in the HTML page
toLink.fun=function(z){
if (length(grep("/",z,fixed = T))>0) {
splitz=strsplit(as.character(z),"/")
zLink=splitz[[1]][2]
} else {zLink=z}
paste0("<a href='",zLink,"_info.html' target='_blank' >",z,"</a>",collapse = "")
}
res[,1]=sapply(res[,1],toLink.fun)
res=DT::datatable(res, escape=-2)
return(res)
})
}
和
#ui.R:
sidebarPanel(
fluidRow(sliderInput("value", label="min value", min=10, max=1000, value="100")),
fluidRow(actionButton(inputId="submit", label="submit"))
),
mainPanel(DT::dataTableOutput('res'))