#hugo
#хьюго #hugo
Вопрос:
У меня есть конфигурация, которая выглядит следующим образом:
[[menu.main]]
name = "Team Profile"
url = "/team/"
weight = 24
parent = "about"
Но когда я смотрю на код в консоли разработчика в Chrome, он выглядит следующим образом:
<a href="https://www.example.com//team/">Team Profile</a>
Я хочу, чтобы это выглядело так:
<a href="/team/">Team Profile</a>
На что мне следует обратить внимание относительно того, почему он меняет URL-адрес?
У меня нет никаких ссылок на canonifyURLs
nor relativeURLs
в моих конфигурационных файлах.
[РЕДАКТИРОВАТЬ] Я проверил наличие absURL и нашел это:
layouts/partials/head.html: <!--<link rel="stylesheet" href="{{ "css/style.css" | absURL }} "> -->
layouts/partials/header.html: <img src="{{ .Site.Params.logo | safeHTML | absURL }}" alt="{{.Site.Title }}">
themes/tapp/layouts/partials/header.html: <img src="{{ .Site.Params.logo | safeHTML | absURL }}" alt="{{.Site.Title }}">
[ПРАВИТЬ]
Я просмотрел themes/XX/layouts/partials/header.html
и нашел это:
{{ range .Site.Menus.main }}
{{ if .HasChildren }}
<li class="menu-item-has-children">
<a href="{{ .URL | relLangURL }}"> {{ .Name }}</a>
<ul class="sub-menu">
{{ range .Children }}
<li><a href="{{ .URL | relLangURL }}">{{ .Name }}</a></li>
{{ end }}
</ul>
</li>
{{ else }}
<li><a href="{{ .URL | relLangURL }}"> {{ .Name }}</a> </li>
{{ end }}
{{end}}
[РЕДАКТИРОВАТЬ] Согласно предложению, я изменил на это:
{{ range .Site.Menus.main }}
{{ if .HasChildren }}
<li class="menu-item-has-children">
<a href="{{ .url }}"> {{ .Name }}</a>
<ul class="sub-menu">
{{ range .Children }}
<li><a href="{{ .url }}">{{ .Name }}</a></li>
{{ end }}
</ul>
</li>
{{ else }}
<li><a href="{{ .url }}"> {{ .Name }}</a> </li>
{{ end }}
{{end}}
{{ if .Site.Params.freeTrial.enable }}
<li><a class="btn-free" href="{{ .url }}"> Free Trial of Apps </a> </li>
{{ end }}
и это работает.
Комментарии:
1. Вам нужно будет проверить используемый вами шаблон. В коде, который генерирует меню, может быть вызов
absURL
.2. Вместо поиска
absURL
в вашем проекте найдите шаблон, который генерирует HTML-код меню.3. @josephting AFAIK шаблон находится в моем исходном коде, поэтому он должен был найти его, когда я выполнял grep -r. Не могли бы вы посоветовать, как я могу подтвердить, что я не завишу от внешнего шаблона? Я хочу, чтобы все мои зависимости были в исходном коде или, по крайней мере, документированы.
4. @MichaelPotter Дело в том, что даже не подтверждено, используется ли здесь
absURL
, хотя это весьма вероятно. Вам нужно найти файл шаблона, который генерирует HTML меню, и выяснить. Хотя вы должны быть в состоянии найти это с помощью.Site.Menus.main
.5. Что происходит, когда вы просто помещаете
{{ .url }}
?