libcurl error when using htmlwidgets::saveWidget along with plotly::partial_bundle without an internet connection
Nessuno ha ancora preso questa issue.
- Lingua principale
- R
- Stelle
- 2.7k
- Fork
- 641
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
Running the ?plotly::partial_bundle example without an internet connection available results in the below error.
I think it used to work without accessing https://cdn.plot.ly ?
As a workaround I'm now using curl::has_internet to check whether I can use partial_bundle.
Example:
library(plotly)
p <- plot_ly(x = 1:10, y = 1:10) %>% add_markers()
save_widget <- function(p, f) {
owd <- setwd(dirname(f))
on.exit(setwd(owd))
htmlwidgets::saveWidget(p, f)
mb <- round(file.info(f)$size / 1e6, 3)
message("File is: ", mb," MB")
}
f1 <- tempfile(fileext = ".html")
f2 <- tempfile(fileext = ".html")
save_widget(p, f1)
save_widget(partial_bundle(p), f2)
Error:
Error in curl::curl_download(paste0("https://cdn.plot.ly/", bundle_script), :
Could not resolve hostname [cdn.plot.ly]:
Could not resolve host: cdn.plot.ly
11.
stop(e)
10.
raise_libcurl_error(6L, "Could not resolve hostname", "Could not resolve host: cdn.plot.ly",
"https://cdn.plot.ly/plotly-basic-2.25.2.min.js", NULL)
9.
curl::curl_download(paste0("https://cdn.plot.ly/", bundle_script),
tmpfile)
8.
verify_partial_bundle(p)
7.
plotly_build.plotly(p)
6.
plotly_build(p)
5.
htmlwidgets::saveWidget(p, f)
4.
x$elementId %||% paste("htmlwidget", createWidgetId(), sep = "-")
3.
toHTML(widget, standalone = TRUE, knitrOptions = knitrOptions)
2.
htmlwidgets::saveWidget(p, f)
1.
save_widget(partial_bundle(p), f2)
sessionInfo:
R version 4.6.1 (2026-06-24 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=German_Germany.utf8 LC_CTYPE=German_Germany.utf8 LC_MONETARY=German_Germany.utf8 LC_NUMERIC=C
[5] LC_TIME=German_Germany.utf8
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] htmlwidgets_1.6.4 plotly_4.12.1 ggplot2_4.0.3 shiny_1.14.0
loaded via a namespace (and not attached):
[1] sass_0.4.10 generics_0.1.4 tidyr_1.3.2 digest_0.6.39 magrittr_2.0.5 evaluate_1.0.5
[7] grid_4.6.1 RColorBrewer_1.1-3 fastmap_1.2.0 jsonlite_2.0.0 promises_1.5.0 httr_1.4.8
[13] purrr_1.2.2 crosstalk_1.2.2 viridisLite_0.4.3 scales_1.4.0 jquerylib_0.1.4 cli_3.6.6
[19] rlang_1.3.0 withr_3.0.3 cachem_1.1.0 yaml_2.3.12 otel_0.2.0 tools_4.6.1
[25] memoise_2.0.1 dplyr_1.2.1 httpuv_1.6.17 curl_8.0.0 vctrs_0.7.3 R6_2.6.1
[31] mime_0.13 lifecycle_1.0.5 fontawesome_0.5.3 pkgconfig_2.0.3 pillar_1.11.1 bslib_0.12.0
[37] later_1.4.8 gtable_0.3.6 data.table_1.18.6.1 glue_1.8.1 Rcpp_1.1.2 xfun_0.60
[43] tibble_3.3.1 tidyselect_1.2.1 rstudioapi_0.19.0 knitr_1.51 farver_2.1.2 xtable_1.8-8
[49] htmltools_0.5.9 rmarkdown_2.31 compiler_4.6.1 S7_0.2.2
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia con plotly::partial_bundle e verify_partial_bundle, che compaiono nello stack degli errori, e riproduci l'esempio con htmlwidgets::saveWidget mentre sei offline. Traccia la chiamata a curl::curl_download per il bundle CDN e ispeziona i test o gli esempi esistenti relativi a questi punti di ingresso. Il lavoro è completato quando il workflow offline segnalato ha un comportamento definito e verificato senza l'errore di risoluzione del nome host.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- plotly, r
- Ambito
- data-visualization, networking
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 68/100