Shinyアプリにjsライブラリを含める必要があります。現在、私はincludeHTMLを使用して、スクリプトを直接HTMLコードに含めています。例えば.
includeHTML('URL.js')
Tags $ scriptを使用している場合、jsファイルをブラウザしようとすると、ブラウザに「Not Found」と表示されます。
http://127.0.0.1:7106/URL.js
tags$script(src = 'URL.js')
ここで、ui.rとserver.rの同じフォルダーにURL.jsを配置します。
URL.jsファイルを保存する場所または、jsファイルを含める他の方法はありますか?
提案をありがとう。
あなたがする必要があるのは:
server.R
_および_ui.R
_と同じフォルダーにwww
フォルダーを作成しますwww
フォルダーに入れます。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によって生成されたテンプレートであることに注意してください。
Htmlのhead
は次のようになります。
_<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>
_
別の方法は以下を使用することです:
includeScript("mapManipulator.js"),
└──shiny
├── server.R
├── ui.R
└── www
├── stylesheet.css
└── js
└── hoge.js
どちらかが機能します
1. tags$head(HTML("<script type='text/javascript' src='js/hoge.js'></script>"))
2. HTML('<head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
<script type="text/javascript" src="js/hoge.js"></script>
</head>')
まだ説明されていないもう1つのオプションは、ui.Rファイルを完全に削除してから、全体をカスタムHTMLファイルとしてコーディングすることです。詳細はこちら https://shiny.rstudio.com/articles/html-ui.html
この記事では、デフォルトのHTMLフォーム要素がserver.Rの入力として自動的に使用されますが、このガイドで光沢のあるカスタム入力(または出力)要素を作成することもできます https://shiny.rstudio.com/ articles/building-inputs.html
私の好ましい方法はこのようなものです:
ui.R:
extendShinyjs(script = "app.js", functions = c("alerta")),
app.js:
shinyjs.alerta = function(text){
alert(text);
}
server.R
js$alerta("alerta alerta antifascista")
次のようなコードを含めることもできます。
ライブラリのインポート後のui.R:
jsCode <- "shinyjs.alerta = function(text){alert(text);}"
fluidPage内のui.R:
extendShinyjs(text = jsCode, functions = c("alerta")),
server.Rからの呼び出しは同じです