R blogdown не может найти файлы изображений - PullRequest
0 голосов
/ 07 марта 2020

У меня есть (был) рабочий сайт, созданный с помощью blogdown. Я попытался восстановить сайт сегодня впервые за пару месяцев, и я получаю ошибки, потому что он, очевидно, не может найти мои изображения.

Чтобы создать репрезентацию, я создал новый проект, выбрал опцию «Веб-сайт с blogdown» и принял все настройки по умолчанию. Сайт построен без проблем с blogdown ::: serve_site (). Я поместил изображение с именем x.png в каталог stati c и добавил:

```{r x, fig.cap='x', tidy=FALSE}
knitr::include_graphics("x.png")
```

в файл 2015-07-23-r-rmarkdown.Rmd. Когда я говорю об этом blogdown ::: serve_site (), я получаю:

Error in knitr::include_graphics("x.png") : 
  Cannot find the file(s): "x.png"
Calls: local ... withCallingHandlers -> withVisible -> eval -> eval -> <Anonymous>
Execution halted

Затем я попытался добавить изображение с помощью меню «Надстройки», выбрал Insert Image и указал его на файл. Он сделал копию файла и записал ожидаемую уценку в 2015-07-23-r-rmarkdown.Rmd:

![](/post/2015-07-23-r-rmarkdown_files/x.png)

Это вызвало эту ошибку:

pandoc: /post/2015-07-23-r-rmarkdown_files/x.png: openBinaryFile: does not exist (No such file or directory)
Error: pandoc document conversion failed with error 1
Execution halted

Любые идеи на что, черт возьми, не так?

> sessionInfo()
R version 3.6.2 (2019-12-12)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Catalina 10.15.3

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.3           later_1.0.0          compiler_3.6.2       pillar_1.4.3        
 [5] prettyunits_1.1.1    tools_3.6.2          digest_0.6.25        packrat_0.5.0-25    
 [9] pkgbuild_1.0.6       jsonlite_1.6.1       evaluate_0.14        lifecycle_0.2.0     
[13] tibble_2.1.3         gtable_0.3.0         pkgconfig_2.0.3      rlang_0.4.5         
[17] cli_2.0.2            rstudioapi_0.11      parallel_3.6.2       yaml_2.2.1          
[21] blogdown_0.18        xfun_0.12            loo_2.2.0            gridExtra_2.3       
[25] stringr_1.4.0        dplyr_0.8.4          knitr_1.28           tidyselect_1.0.0    
[29] stats4_3.6.2         grid_3.6.2           glue_1.3.1           inline_0.3.15       
[33] R6_2.4.1             processx_3.4.2       fansi_0.4.1          rmarkdown_2.1       
[37] bookdown_0.18        rstan_2.19.3         servr_0.16           purrr_0.3.3         
[41] magrittr_1.5         callr_3.4.2          ggplot2_3.3.0        promises_1.1.0      
[45] matrixStats_0.55.0   scales_1.1.0         ps_1.3.2             StanHeaders_2.21.0-1
[49] htmltools_0.4.0      rsconnect_0.8.16     assertthat_0.2.1     mime_0.9            
[53] colorspace_1.4-1     httpuv_1.5.2         stringi_1.4.6        munsell_0.5.0       
[57] crayon_1.3.4  
> rmarkdown::pandoc_version()
[1] ‘2.7.3’

Ответы [ 4 ]

1 голос
/ 07 марта 2020

Попробуйте поместить свое изображение внутри de "content / post". Вы можете использовать надстройку «новое сообщение» и создать подкаталог для каждого сообщения «content / post / my_incredible_post», тогда все ваши файлы будут находиться в одном месте. Тогда вы можете использовать:

knitr::include_graphics("x.png")

и

![](x.png)
1 голос
/ 07 марта 2020

Для вашего второго метода с аддоном: вы не должны связывать этот файл RMD. Если вы просто используете надстройку "обслуживать сайт", она работает как положено. Конечно, это не сработает, если вы свяжете его, потому что файл скопирован в «static / post / ....», а ваш файл RMD находится в «content / post /..."

».
0 голосов
/ 10 марта 2020

Спасибо всем. Мой оригинальный сайт нуждался в добавленной опции error = FALSE. Я думаю, что из-за изменений, внесенных в knitr 1.28, этот код не удался:

knitr::include_graphics("/post/2019-12-10-installing-r-rstudio-on-windows_files/marginWin.png")

, но это работает:

knitr::include_graphics("/post/2019-12-10-installing-r-rstudio-on-windows_files/marginWin.png", error = FALSE)

Я ввел вторую проблему, когда делал репе. вздох ... Путь в вызове include_graphics () должен начинаться с /

0 голосов
/ 08 марта 2020

Вот пример того, как я организовал свою запись в блоге:

site/content/blog/veterans/ содержит мою запись в блоге, так как index.md

site/content/blog/veterans/gallary содержит мои фотографии, использованные в записи в блоге. Чтобы вызвать мою фотографию в записи блога, я использую ![png](./gallery/uspop.png)

Если бы она находилась в том же каталоге, что и моя запись в блоге, я бы использовал ![png](./uspop.png)

Вы можете посмотреть в моем репозитории GitHub, если это поможет: https://github.com/datasurfergtx/site/tree/master/content/blog/veterans

...