如何删除 wagtail 网址中的 'home'
How to remove 'home' in wagtail URLs
我有一个 wagtail 项目,根目录下有一个 'Home' 页面 (slug='home')。
还有第二个页面 'Blog',它是 'Home' (slug='blog') 的子页面。
最后,我的博客发布页面是 'Blog'(slug='blog-post-1' 等)的子页面。
在blog/models.py
中我有以下代码:
class BlogListingPage(Page):
"""List the Blog detail pages."""
template = "blog/blog_listing_page.html"
....
def get_context(self, request, *args, **kwargs):
"""Add custom content to our context."""
context = super().get_context(request, *args, **kwargs)
context['blog_pages'] = self.get_children().live()
return context
class BlogDetailPage(Page):
"""Blog detail page."""
template = "blog/blog_detail_page.html"
....
要访问我使用的博客:
<a class="nav-link" href="/blog">Blog</a>
而且效果很好。
现在,详细信息页面的 URL 是 /home/blog/blog-post-1/
等,但该页面实际上位于 /blog/blog-post-1/
。
“/home”来自哪里,我该如何摆脱它?
确保 urls.py
中没有 '/home'
。如果这样做,请将其替换为 ''
。 urls.py
中的最后一行通常是:
urlpatterns.append(path('', include(wagtail_urls)))
此外,在 Wagtail 管理员中,在“设置”->“站点”中,确保您已经为您的站点选择了根页面。
您正在使用 {{ page.url_path }}
输出页面 URL。这是 Page
对象的内部字段,不打算直接用作页面 URL(因为这将取决于站点根目录的放置位置,在设置 -> 站点下) - 相反,Wagtail 将最终的 URL 计算为目标页面的 url_path
(此处为 /home/blog/blog-post-1/
)与根页面的 url_path
(/home/
)之间的差异。
在模板中指定页面 URL 的正确方法是:{% pageurl page %}
。 (您还需要在模板顶部添加 {% load wagtailcore_tags %}
。)
我有一个 wagtail 项目,根目录下有一个 'Home' 页面 (slug='home')。
还有第二个页面 'Blog',它是 'Home' (slug='blog') 的子页面。
最后,我的博客发布页面是 'Blog'(slug='blog-post-1' 等)的子页面。
在blog/models.py
中我有以下代码:
class BlogListingPage(Page):
"""List the Blog detail pages."""
template = "blog/blog_listing_page.html"
....
def get_context(self, request, *args, **kwargs):
"""Add custom content to our context."""
context = super().get_context(request, *args, **kwargs)
context['blog_pages'] = self.get_children().live()
return context
class BlogDetailPage(Page):
"""Blog detail page."""
template = "blog/blog_detail_page.html"
....
要访问我使用的博客:
<a class="nav-link" href="/blog">Blog</a>
而且效果很好。
现在,详细信息页面的 URL 是 /home/blog/blog-post-1/
等,但该页面实际上位于 /blog/blog-post-1/
。
“/home”来自哪里,我该如何摆脱它?
确保 urls.py
中没有 '/home'
。如果这样做,请将其替换为 ''
。 urls.py
中的最后一行通常是:
urlpatterns.append(path('', include(wagtail_urls)))
此外,在 Wagtail 管理员中,在“设置”->“站点”中,确保您已经为您的站点选择了根页面。
您正在使用 {{ page.url_path }}
输出页面 URL。这是 Page
对象的内部字段,不打算直接用作页面 URL(因为这将取决于站点根目录的放置位置,在设置 -> 站点下) - 相反,Wagtail 将最终的 URL 计算为目标页面的 url_path
(此处为 /home/blog/blog-post-1/
)与根页面的 url_path
(/home/
)之间的差异。
在模板中指定页面 URL 的正确方法是:{% pageurl page %}
。 (您还需要在模板顶部添加 {% load wagtailcore_tags %}
。)