plotly / plotly/plotly.R

libcurl error when using htmlwidgets::saveWidget along with plotly::partial_bundle without an internet connection

Đang mở
#2,498 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Ngôn ngữ chính
R
Star
2.7k
Fork
641
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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     

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu với plotly::partial_bundle và verify_partial_bundle, xuất hiện trong ngăn xếp lỗi, rồi tái hiện ví dụ bằng htmlwidgets::saveWidget khi ngoại tuyến. Theo dõi lệnh gọi curl::curl_download cho bundle CDN và kiểm tra các bài kiểm thử hoặc ví dụ hiện có xung quanh các điểm truy cập này. Được xem là hoàn tất khi workflow ngoại tuyến được báo cáo có hành vi được xác định và xác minh mà không có lỗi phân giải tên máy chủ.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
plotly, r
Lĩnh vực
data-visualization, networking
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Sôi nổi
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
68/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.