1

你好 blogdown stackoverflow 社区!

我最近一直在将我的个人 GitHub/Jekyll 博客 ( https://blogs.nopcode.org/brainstorm_redirects ) 迁移到 Blogdown/Netlify ,但我对config.tomlurl 路由业务有点困惑。

我已经详细阅读了官方 blogdown 和netlify 文档

以及亿辉关于良好的永久链接卫生的建议

不幸的是,无论我尝试了多少明智的更改(主要是在config.toml和上_redirects),我都无法成功地从 Jekyll 迁移,因为:

  1. 访问https://blogs.nopcode.org/brainstorm会导致所有博客链接呈现为https://blogs.nopcode.org/brainstorm/brainstorm/2017-09-01-blogpost-etcbrainstormURL 中的两个而不是一个)。我希望我所有的博文都链接到https://blogs.nopcode.org/brainstorm/2017-09-01-blogpost-etc(只有一次头脑风暴)。现在我正在做一个 URL 重写,这样当用户点击其中一个brainstorm/brainstorm链接时,它会被重写为简单的brainstorm......显然不是最理想的。
  2. 我必须移动部分主题(js/images/css/etc..)static/brainstorm/,以便主题资产加载并找到这些 URL。

这是我博客的 repo,如果你发现其中明显的缺陷:

https://github.com/brainstorm/brainblog

还有一系列更改,我尝试在没有太多扭曲的情况下追求可接受的配置:

https://github.com/brainstorm/brainblog/commits/master

话虽如此,我发现 Hugo/blogdown 超级快,RStudio Addins 菜单/界面超级方便,可以快速更改博客文章 :)

提前非常感谢!

4

1 回答 1

1

这里的问题是创建的,因为有一个帖子的相对路径,brainstorm并且您将基本 url 设置为https://blogs.nopcode.org/brainstorm

Hugo 将baseURL根据主题配置构建您的相对路径,Netlify 将发布相对于站点根目录的公共目录。

Hugo Server 在本地向您显示正确的链接brainstorm/brainstorm,因为它基于 baseURL 配置路径。

Netlify 路径来自已发布站点的根目录,不知道 Hugo 配置。在 Netlify 上,帖子的路径位于/brainstorm.

可能的解决方案

  • 为您网站的主页创建一个布局,以创建一个列表,就像主题为一个部分所做的那样。

  • 将所有帖子放入内容根目录并删除brainstorm文件夹

  • 让 Hugopublic/brainstorm构建hugo -d public/brainstormnetlify.toml

_index.md在文件夹的根目录创建文件,其中content包含您要在页面上使用的任何前端数据(如果有)。

layouts/index.html在项目存储库的根目录中创建一个文件。

{{ partial "header.html" . }}

<main class="content" role="main">

  <div class="archive">
    {{ range .Data.Pages.GroupByDate "2006" }}
    <h2 class="archive-title">{{ .Key }}</h2>
    {{ range .Pages }}
    <article class="archive-item">
      <a href="{{ .RelPermalink }}" class="archive-item-link">{{ .Title }}</a>
      <span class="archive-item-date">
        {{ .Date.Format "2006/01/02" }}
      </span>
    </article>
    {{ end }}
    {{ end }}
  </div>

</main>

{{ partial "footer.html" . }}

于 2018-03-13T01:45:53.737 回答