Include a javascript file in Shiny app
javascript, r, shiny
Solution
What you need to do is:
- create `www` folder in the same folder as `server.R` and `ui.R`
- put javascript file into `www` folder.
- put `tags$head(tags$script(src="hoge.js"))` in UI.
The folder looks like:
├── server.R
├── ui.R
└── www
└── hoge.js
The `ui.R` is something like
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"))
)
))
and `server.R`
library(shiny)
shinyServer(function(input, output) {
output$distPlot <- renderPlot({
dist <- rnorm(input$obs)
hist(dist)
})
})
Note that these are templates generated by Rstudio.
Now `head` of html looks like:
<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>
Problem
I need to include a js library into my Shiny app. Currently I use includeHTML to include the script directly into html codes. e.g. ``` includeHTML('URL.js') ``` The browser will show "Not Found" when I try to browser the js file if I use tags$script, e.g. ``` http://127.0.0.1:7106/URL.js tags$script(src = 'URL.js') ``` Now I put URL.js in the same folder of ui.r and server.r. Where I should store the URL.js file? Or are there other ways to include a js file? Thanks for any suggestions.