`blogdown :: serve_site()`如何设置其本地服务器(Apache / Python /其他)?

时间:2018-12-17 18:16:42

标签: r rstudio blogdown

如果我使用R Studio Addins > Serve Site,或者使用blogdown::serve_site(),是否要设置Apache / Python / etc。我的本地计算机上的服务器?还是发生了其他事情? R Studio和/或Blogdown如何设置此本地Web服务器?

我试图重新创建此设置,而不必使用R Studio > Addins > Serve Site,只是对事情的工作方式感到好奇。

[EDIT]-我应该提到我主要使用Ubuntu和Windows PC。

2 个答案:

答案 0 :(得分:2)

它运行hugo,这是blogdownbookdown和相关项目的要求。 hugo是它自己的(嵌入式)网络服务器。

这实际上非常方便-我经常直接在命令行上运行hugo server。同样,它还允许您仅通过hugo工具链,与R包混合或在它们之间切换来创建站点。

根据您的编辑,这是我当前在Ubuntu上用于网站的脚本:

#!/bin/bash
hugo server --destination docs --renderToDisk

当我使用GitHub的嵌入式服务器时,它具有--destination docs目录。

编辑:我所描述的内容本身是正确的,而且是一种简单的替代方法,但不能回答怡辉提出的问题。与Rmarkdown相比,我倾向于写更多的markdown,因此我所描述的更适合我。

答案 1 :(得分:1)

博客书的the preface中,我建议所有读者至少阅读本书的第1章和第3.1节。该书的Section 1.2回答了这个问题:

  

LiveReload是通过blogdown::serve_site()实现的,它基于R包servr

servr 包依次调用R包httpuv以启动本地HTTP服务器(您可以使用servr::httd()对其进行测试以在浏览器中提供任何本地目录) 。它不使用Apache,Python或其他系统。 blogdown 中的默认服务器也不基于hugo server

在第1.2节中的那句话之后,我插入了一个脚注(#7),在其中我说,如果您希望利用Hugo的内置服务器(即hugo server),则需要查看{{ 3}}。

如果您的网站项目中有任何R Markdown文档,则不能简单地运行hugo server。来自博客书的Appendix D.2

  

尽管我们认为Hugo是一个出色的静态网站生成器,但实际上确实只有一个主要缺失功能:对R Markdown的支持。这基本上就是 blogdown 软件包的重点。此缺失的功能意味着您只能使用静态Markdown文档,因此无法在网页上使用R代码轻松生成结果。

基本上,blogdown::serve_site()有两件事:编译R Markdown文档(如果有),并提供输出页面。可以通过两种方式启动服务器。默认方式是通过 httpuv ,而另一种方式是hugo server,如果您通过R选项请求 blogdown (同样,请参见附录D.2)。 )。通过两种方式,R Markdown文档都会在更新时自动重新编译。

请注意,博客登录也(部分)支持Section 2.1,Jekyll和Hexo。 blogdown::serve_site()启动的服务器也已将它们考虑在内。尽管我猜绝大多数 blogdown 用户都使用Hugo,但这不仅与Hugo有关。