r blogdown - build_site 结果与 serve_site 的预览不匹配

r blogdown - build_site result does not matched preview from serve_site

我用 blogdown 创建了一个新博客,但我似乎犯了一个错误,因为 我建立的网站与 serve_site.

的预览不匹配
dir.create("blog7")
setwd("blog7")
blogdown::new_site(theme = "shenoybr/hugo-goa")
blogdown::serve_site()
blogdown::build_site()
browseURL(url = "public/index.html")

链接没有按预期工作,图像没有显示。 如果我将 /img/headshot.jpg 更改为 ./img/headshot.jpg,该图像似乎可以工作。这些链接似乎不是相对的。

如何避免出现这些问题并避免在 public 中手动编辑结果?

也许您对 config.toml 中的 baseURL 设置有一些问题。

  • 当 运行 blogdown::serve_site() 时,baseURL 设置被 "/" 覆盖以在本地主机下本地提供服务。
  • 对于 blogdown::build_site(),您需要为您的博客建立一个真正的基础 URL(即 "https://www.example.com/")或至少 "/"

请注意,如果您使用 blogdown::build_site() 和一些设置构建您的站点,然后尝试从本地 public 文件夹打开 HTML,它将无法按预期工作。只是因为 URL 是从 baseURL 构建的,例如指向到 /img/headshot.jpg(这在本地没有意义,但在网络上运行良好,如 https://blog.example.com/img/headshot.jpg

所以:

  • 如果您想使用 localhost 在本地预览您的站点,请使用 blogdown::serve_site()
  • 要将站点导出到网络,请使用 blogdown::build_site(),但请注意,当 运行 在本地时,那些生成的 HTML 文件将无法正常工作。

book about blogdown and some info about config.toml 中查看更多详细信息。