Django链接被附加到URL

时间:2012-08-20 19:18:15

标签: django django-templates

我正在使用Django进行项目,我正在尝试建立一个名为“index”的页面链接,该页面是带有URL的页面的起始页面

http://localhost:8000/index/result

我添加了这样的链接:

<a href="index">Start over </a>

因此,该链接指向:

http://localhost:8000/index/result/index

而不是必需的:

http://localhost:8000/index

我在urls.py和views.py中设置了所有页面。

感谢任何帮助。 TNX

2 个答案:

答案 0 :(得分:9)

<a href="/index">Start over </a>

甚至更好

<a href="{% url "index" %}">Start over </a>

答案 1 :(得分:5)

以Daniel Roseman的正确答案为基础,这与Django无关;你会用纯HTML来体验这个问题。

在Daniel建议(或指定协议)时在URL的开头添加/会将其变为绝对链接。从任意名称开始会导致浏览器将其视为相对链接。有一个lot out there explaining the difference,但实际上非常简单。假设您有以下文件:

/var/www/html/
├── directory/
│   └── three.html
├── two.html
└── one.html

然后你可以链接到one.html的其他页面,如

<a href='two.html'>2</a>
<a href='directory/three.html'>3</a>

<a href='/two.html'>2</a>
<a href='/directory/three.html'>3</a>

您可以链接到three.html之类的其他网页

<a href='../one.html'>2</a>
<a href='../two.html'>2</a>

../表示“上升一级”。

<a href='/one.html'>2</a>
<a href='/two.html'>2</a>

因此,当您使用<a href="index">Start over</a>之类的链接创建Django模板时,它会将href值添加到当前页面的URL中,将其视为相对链接。