在 Hugo/Blogdown 中生成的链接在发布到带有子文件夹的域时断开



我正在尝试使用Hugo Xmin创建一个静态站点。我的网站将托管在我的仓库的 gh-pages 中,因此最终的 URL 将如下所示:

https://myuser.github.io/myrepo/

注意在当前阶段,我尚未修改主题附带的示例网站中的任何文件,因此基本上我部署的网站与原始存储库中的完全相同。

问题一

在我的config.toml中,我设置了:

baseurl = "https://myuser.github.io/myrepo/"

因为有了baseurl = "/",我对<head>中的静态CSS文件的链接不起作用,而且网站看起来很乱。通过指定基本 url,CSS 可以正常加载,但随后顶部栏链接会断开,因为这是生成的:

<li>
<a href="/myproj/myproj/about/">About</a>
</li>

为什么生成的 URL 看起来如此奇怪?存储库名称重复。

问题二

主题示例网站,在/content/_index.Rmarkdown末尾有几个链接:

You can also visit the list page of a single section, e.g., [posts](/post/), or [notes](/note/). See the [About](/about/) page for more info.

这些在我的情况下不起作用,因为生成的 URL 是:

<a href="/post/">posts</a>

这会将用户重定向到:https://myuser.github.io/post/这是错误的。基本上,当托管域具有子文件夹时,此主题不起作用。还是我在这里错过了什么?


故障 排除

通过调查一下,我可以看到主题定义了这些链接,如下所示:

<ul class="menu">
{{ range .Site.Menus.main }}
<li><a href="{{ .URL | relURL }}">{{ .Name }}</a></li>
{{ end }}
</ul>

函数relURL正在获取主机名之后的内容,并在生成的 URL 中吐出两次:(

自某个版本的雨果以来,relURL的行为似乎发生了变化(我不知道是哪个)。无论如何,您可以删除这些菜单项中的前导斜杠,例如,更改

[[menu.main]]
name = "About"
url = "/about/"

[[menu.main]]
name = "About"
url = "about/"

最新更新