r语言 - baseUrls,重定向和重写在blogdown



你好博客下堆栈溢出社区!

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

我已经详细阅读了官方博客和网络化文档。

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

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

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

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

https://github.com/brainstorm/brainblog

我尝试了一系列更改,以追求一个可接受的配置,而不会有太多的扭曲:

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

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

提前非常感谢!

之所以出现此问题,是因为brainstorm的帖子有相对路径,并且您将基本网址设置为https://blogs.nopcode.org/brainstorm

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

Hugo 服务器在brainstorm/brainstorm本地显示正确的链接,因为它根据 baseURL 配置路径。

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

可能的解决方案

  • 站点的主页创建布局,以创建列表,就像主题为分区创建列表一样。

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

  • 让 Hugo 在netlify.toml中使用hugo -d public/brainstorm构建public/brainstorm

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

在项目存储库的根目录中创建一个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" . }}

最新更新