我需要在我shiny 的应用程序中加入一个js库.目前,我使用includeHTML将脚本直接包含到html代码中.例如

includeHTML('URL.js')

当我try 浏览js文件时,如果我使用标签$script,浏览器将显示"未找到",例如.

http://127.0.0.1:7106/URL.js

tags$script(src = 'URL.js')

现在我把URL.js位于ui的同一文件夹中.r和服务器.R

我应该在哪里存储URL.js文件?或者是否有其他方式包含js文件?

谢谢你的建议.

推荐答案

你需要做的是:

  1. 在与server.Rui.R相同的文件夹中创建www文件夹
  2. 将javascript文件放入www文件夹.
  3. 在UI中输入tags$head(tags$script(src="hoge.js")).

文件夹看起来像:

├── server.R
├── ui.R
└── www
    └── hoge.js

ui.R是一种

library(shiny)
shinyUI(pageWithSidebar(
  headerPanel("New Application"),
  sidebarPanel(
    sliderInput("obs", 
                "Number of observations:", 
                min = 1, 
                max = 1000, 
                value = 500)
  ),
  mainPanel(
    plotOutput("distPlot"),
    tags$head(tags$script(src="hoge.js"))
  )
))

还有server.R

library(shiny)
shinyServer(function(input, output) {
  output$distPlot <- renderPlot({
    dist <- rnorm(input$obs)
    hist(dist)
  })
})

请注意,这些是Rstudio生成的模板.

现在head个html看起来像:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  ... snip ...
  <script src="shared/slider/js/jquery.slider.min.js"></script>
  <script src="hoge.js"></script>
</head>

R相关问答推荐

当我们不知道确切的子集号时,在框架中对数据进行子集化

在R中,将一个函数作为输入传递给另一个函数时进行参数判断

根据固定值范围在tible中添加新行

使用预定值列表将模拟数量(n)替换为rnorm()

过滤矩阵以获得R中的唯一组合

Tidyverse/Djirr为从嵌套列表中提取的列名赋值的解决方案

为什么当我try 在收件箱中使用合并功能时会出现回收错误?

手动打印线型gplot

将非重复序列高效转换为长格式

lightgbm发动机在tidymmodels中的L1正则化""

删除具有相同标题的tabPanel(shinly)

根据列A中的差异变异列,其中行由列B中的相对值标识

打印XTS对象

无法定义沿边轨迹的 colored颜色 渐变(与值无关)

给定开始日期和月份(数字),如何根据R中的开始日期和月数创建日期列

在保留列表元素属性的同时替换列表元素

将箭头绘制在图形外部,而不是图形内部

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?

ArrangeGrob()和类似的替代方法不接受Grob列表.在Grid.Draw,返回:glist中的错误(...):仅允许在glist";中使用Grobs;

生存时间序列的逻辑检验