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

时间:2019-03-25 17:37:09

标签: rstudio r-markdown 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看起来如此奇怪?存储库名称重复。

问题II

主题示例网站/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中将它两次吐痰后得到的内容:(

1 个答案:

答案 0 :(得分:1)

自从特定版本的Hugo(我不知道哪个版本)以来,relURL的行为似乎已经改变。无论如何,您可以删除这些菜单项中的前导斜杠,例如,更改

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

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