[英]How to add static files to shiny R package for new input control
我尝试使用addResourcePath并包含extdata
目录(在inst
目录中):
在我的自定义输入函数中包含脚本和css文件:
#' @export
multiSelect <- function(inputId, label = NULL, choices = NULL, selected = NULL) {
args <- lapply(names(choices), function(name) {
value <- choices[[name]]
if (value %in% selected) {
tags$option(value = value, selected = "selected", name)
} else {
tags$option(value = value, name)
}
})
args$id = inputId
args$class = "multiple-select"
args$multiple = "true"
tagList(
singleton(tags$head(
tags$link(rel = "stylesheet", href = "extdata/multiSelect.css"),
tags$script(src = "extdata/multiSelect.js")
)),
tags$script(paste0("$('#", inputId, "').multipleSelect()")),
tags$div(
class = "form-group shiny-input-container",
tags$label(`for`=inputId, label),
do.call(tags$select, args)
)
)
}
我已经试过了:
addResourcePath('extdata', system.file('extdata', package='myPackage'))
我在程序包的divosshiny\\R\\shinyUtils.R
文件中运行此文件。
但是当我运行服务器并打开时:
http://127.0.0.1:7003/extdata/multiSelect.js
multiSelect.js
位于package/inst/extdata/
目录中。 我想念什么吗? 假设addResourcePath如何工作?
构建程序包时没有任何错误。 当我拼错我有错误, extdata
作为exdata
所以我知道该路径是正确的。
函数addResourcePath需要在用户代码中执行(在main server.R中),我添加了一个函数:
#' @export
setupWidgets <- function() {
addResourcePath('extdata', system.file('extdata', package='divosShiny'))
}
并在server.R中执行了它,并成功了
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.