Сгенерированные ссылки не работают в Hugo / Blogdown при публикации на домен с подпапкой - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь использовать Hugo Xmin для создания статического сайта.Мой сайт будет размещен на gh-страницах моего хранилища, поэтому окончательный URL будет выглядеть так:

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

Примечание На моем текущем этапе я не изменял ни одного файлав примере сайта, который идет вместе с темой, поэтому в основном сайт, который я развертываю, точно такой же, как и в исходном хранилище.

Проблема I

В моем config.toml я установил:

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

Поскольку с baseurl = "/" мои ссылки на статические CSS-файлы в <head> не работали, и сайт выглядел грязным.Указывая базовый 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 Ответ

1 голос
/ 26 марта 2019

Поведение relURL, похоже, изменилось с определенной версии Гюго (я не знаю, какая).В любом случае вы можете удалить начальные косые черты в этих пунктах меню, например, изменить

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

на

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