【问题标题】:Django link gets appended to URLDjango 链接被附加到 URL
【发布时间】:2012-08-20 19:18:14
【问题描述】:

我正在将 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

【问题讨论】:

    标签: django django-templates


    【解决方案1】:
    <a href="/index">Start over </a>
    

    甚至更好

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

    【讨论】:

    • 第二个建议 will only work 使用 Django >= 1.5(未发布)或 {% load url from future %} 语句。你的意思是{% url index %}
    • 我的小组遇到了麻烦,第一个建议对我们有用。
    【解决方案2】:

    以 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>
    

    因此,当您制作带有 &lt;a href="index"&gt;Start over&lt;/a&gt; 之类的链接的 Django 模板时,它会将 href 值添加到当前页面的 URL,将其视为相对链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 2015-01-12
      • 1970-01-01
      • 2018-05-24
      相关资源
      最近更新 更多