草稿时由 netlify 渲染的草稿:在 yaml 中为真

Drafts rendered by netlify when draft: true in yaml

我 运行 来自这个 github repo hosted by Netlify at https://timmastny.rbind.io/

的 blogdown 站点

在website2/content/blog/我有两个post

2018-01-16-git-blogdown-project-workflow.Rmd

2018-01-13-bayesian-meta-analysis-powerlifting.Rmd

你可以看到,在两个 post 的 YAML 中,我有 draft: true,在第二个中我什至有 publishdate: '2018-01-20',这是未来 post。

然而,将这些更改推送到 github 并使用干净的缓存部署 Netlify,在我的实际网站上我仍然看到 posts: https://timmastny.rbind.io/

draft: true 我错过了什么?

我已经阅读了本书的 2.3.1 和 D.3 部分,但我不确定。我还将 Hugo 更新到 0.32.4,并且正在使用最新版本的 blogdown。


编辑:我删除了 public 文件夹并将 public 添加到 gitignore。 Netlify 有一个 16 分钟的构建并已发布。但是在实际网站上,我收到 找不到页面 错误。

这是日志:https://app.netlify.com/sites/timmastny/deploys/5a60c299df99532a0147c3d7

这是我在 Netlify 上的部署设置。它们应该符合 blogdown 书中 3.1 中的建议:

Deploy settings

Repository: https://github.com/tmastny/website2

Build command: hugo

Publish directory: public

Production branch: master

Branch deploys: Deploy only the production branch and its deploy previews

Public deploy logs: Logs are public

Build environment variables: HUGO_VERSION 0.32.4

我假设您使用 public 作为 Netlify 的部署文件夹。

第 1 期

你的 public 文件夹在你的存储库中,所以它被检出到 Netlify 站点,当你 运行 你的构建你的帖子已经存在于该文件夹中,所以它们总是会部署。

解决方案 #1

从您的项目中删除 public 文件夹并为 public 文件夹添加一个 .gitignore

部署应在每次部署时重新构建 public 文件夹,因此它可以将 CDN 与您的构建进行比较并仅复制正确的文件。

问题 #2(更新的问题)

Hugo 主题在 config.toml 中设置为 theme = "hugo-xmin"。当从 GitHub 检出存储库时,这个主题文件夹是空的。它在 Netlify 上也是空的,因此构建无效。

解决方案 #2

已在 config.toml 中更改为有效主题 theme = "hugo-lithium-theme",构建开始创建您的网站页面。

原刊

.Rmd 中更新 draft: true 时不会忽略构建。

解决方案(原版)

Hugo 没有为 .Rmd 处理您的内容,它正在使用您创建的已处理 .html 文件中的内容。因此,您需要确保在构建之前将那些带有 draft: true 的文件的内容提交到您的存储库。