如何在Wagtail中获取模板中根页面的url?

How to get the url of the root page in template in Wagtail?

pageurl can do it with a Page object,但我不确定如何获取根页面对象。

根页面的URL是/。只需写 <a href="/"> - 无需使用模板标签。

(您可能认为这是作弊,但它确实是根页面的定义。)

如果 urls.py 中的 include(wagtail_urls) 行根植于 / 以外的路径,并且不想在模板中对该路径进行硬编码,您可以使用:{% url 'wagtail_serve' '' %}(注意'wagtail_serve'后的空字符串)。

要在 wagtail 模板中显示站点根页面,请将以下内容添加到您的页面模板中:

{% load wagtailcore_tags %}
<a href="{{ request.site.root_url }}">Site Url</a>

此代码已弃用。从 wagtail 2.9 开始,首选选项是 {% wagtail_site %}。查看 wagtail 2.9 release notes

如果您使用 wagtail_modeltranslation 并希望获得翻译后的根页面 url(例如:example.com/fr/ 对于法语),您可以使用 {% pageurl request.site.root_page %}

如果 wagtail 版本 > 2.12.2,您需要导入 {% wagtail_site as current_site %}

然后您可以使用:{{ current_site.root_url }}在您的模板中。