Django href在搜索栏中重复URL

问题描述 投票:1回答:2

这是一个非常基本的问题,但是我对django还是比较陌生。

我有一个导航栏:

<nav>
        <ul>
            <li> <a href="transfer"> Home </a> </li>
            <li> <a href="transfer/upload"> Upload </a> </li>
            <li> <a href="transfer/download"> Download </a> </li>
          </ul>
    </nav>

例如,当我在localhost:8000 / transfer并单击“上传”按钮时,我成功重定向到localhost:8000 / transfer / upload,但是当我单击“ home”后,我会m重定向到localhost:8000 / transfer / transfer(如果我单击从上传下载,则为localhost:8000 / transfer / transfer / download)。我尝试将hrefs修改为不包含“ transfer /”,但是当我第一次单击按钮时遇到了无效页面。

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('/upload', views.upload, name='upload'),
    path('/download', views.download, name='download')
]

我该怎么解决?

django django-urls
2个回答
1
投票
如果您执行

not在URL前面加上斜杠,则这是相对URL,然后确实将路径追加到当前路径。因此,您可以在网址前面加上斜杠:

<nav> <ul> <li> <a href="/transfer"> Home </a> </li> <li> <a href="/transfer/upload"> Upload </a> </li> <li> <a href="/transfer/download"> Download </a> </li> </ul> </nav>
但是这是

the

原因之一,为什么更好地利用{% url … } template tag [Django-doc]将此标记赋予视图的name,并将其翻译为相应的URL:{% url … }

1
投票
您是否尝试使用像<nav> <ul> <li> <a href="{% url 'index' %}"> Home </a> </li> <li> <a href="{% url 'upload' %}"> Upload </a> </li> <li> <a href="{% url 'download' %}"> Download </a> </li> </ul> </nav>localhost:8000/transfer这样的绝对路径(不带斜杠)。>>
© www.soinside.com 2019 - 2024. All rights reserved.