Django href 在搜索栏中重复 URL
Django href repeats URL in searchbar
这是一个非常基本的问题,但我对 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 并单击 "upload" 按钮时,我被成功重定向到 localhost:8000/transfer/upload,但在那之后例如,当我点击 "home" 时,我被重定向到 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')
]
我该怎么做才能解决这个问题?
您是否尝试使用像 localhost:8000/transfer
或 transfer
(没有斜线)这样的绝对路径。
如果您不在url前加上斜杠,那么这是亲戚url,然后确实将路径附加到当前路径。因此,您可以在 url 前面加上斜杠:
<nav>
<ul>
<li> <a href="<b>/transfer</b>"> Home </a> </li>
<li> <a href="<b>/transfer/upload</b>"> Upload </a> </li>
<li> <a href="<b>/transfer/download</b>"> Download </a> </li>
</ul>
</nav>
但这是 最好使用 {% url … }
template tag [Django-doc] 的原因之一,此标签被赋予 name,并将其翻译成相应的 url:
<nav>
<ul>
<li> <a href="<b>{% url 'index' %}</b>"> Home </a> </li>
<li> <a href="<b>{% url 'upload' %}</b>"> Upload </a> </li>
<li> <a href="<b>{% url 'download' %}</b>"> Download </a> </li>
</ul>
</nav>
这是一个非常基本的问题,但我对 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 并单击 "upload" 按钮时,我被成功重定向到 localhost:8000/transfer/upload,但在那之后例如,当我点击 "home" 时,我被重定向到 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')
]
我该怎么做才能解决这个问题?
您是否尝试使用像 localhost:8000/transfer
或 transfer
(没有斜线)这样的绝对路径。
如果您不在url前加上斜杠,那么这是亲戚url,然后确实将路径附加到当前路径。因此,您可以在 url 前面加上斜杠:
<nav>
<ul>
<li> <a href="<b>/transfer</b>"> Home </a> </li>
<li> <a href="<b>/transfer/upload</b>"> Upload </a> </li>
<li> <a href="<b>/transfer/download</b>"> Download </a> </li>
</ul>
</nav>
但这是 最好使用 {% url … }
template tag [Django-doc] 的原因之一,此标签被赋予 name,并将其翻译成相应的 url:
<nav>
<ul>
<li> <a href="<b>{% url 'index' %}</b>"> Home </a> </li>
<li> <a href="<b>{% url 'upload' %}</b>"> Upload </a> </li>
<li> <a href="<b>{% url 'download' %}</b>"> Download </a> </li>
</ul>
</nav>