【问题标题】:linking outside of Django site in dev mode在开发模式下链接到 Django 站点之外
【发布时间】:2014-03-13 07:30:14
【问题描述】:

我正在本地服务器上测试一个 django 站点:http://127.0.0.1:8000/

网站内部链接都很好用,即使是静态链接。但是,当我尝试使用 <a href="http://google.com">google</a> 作为我的博客模型文本字段内的文本链接到外部链接时,它不会正确呈现链接。然后,该博客模型作为 |safe(以便呈现 html)传递给模板,而链接则尝试将所有内容附加到静态根:

http://127.0.0.1:8000/blog/view/http://google.com

有人知道如何保持我的静态链接正常工作,但仍有链接到网站之外?

编辑: 例如,这是一篇博客文章,它存储在管理员的 TextField() 中,位于我的博客应用程序中。博客文章有一些链接。 /static/mytextfile 的链接可以正常工作,因为它将链接附加到 http://127.0.0.1:8000/。但是,github 链接不起作用,因为它试图将 github 链接附加到 http://127.0.0.1:8000/,因此输出的 html 会创建 "http://127.0.0.1:8000/http://github.com/"

<p><b>The Code</b><br>
<a href=”http://github.com/”>GitHub</a>

<p><b>Example Outputs</b>
<br><a href="/static/mytextfile.txt">a text file</a>

这是我得到的 404 错误:

Page not found (404)
Request Method: GET
Request URL:    http://127.0.0.1:8000/blog/view/%E2%80%9Dhttp://github.com/%E2%80%9D

编辑 2:

这就是我“转义”html 过滤器的方式。到目前为止,它可以很好地让我的&lt;p&gt; 等不理会。然而,我并没有留下我的href 链接!

{% autoescape off %}
{% block content %}
    <p>{{ post.body|safe }}</p>
{% endblock %}
{% endautoescape %}

【问题讨论】:

  • 您能否在此处粘贴代码 - 我怀疑您对问题的描述不准确,因为您的示例使用 http 和 https 作为 Google 网址

标签: python django


【解决方案1】:

GitHub 链接的双引号字符似乎有问题。

代替:

<p><b>The Code</b><br>
<a href=”http://github.com/”>GitHub</a>

试试:

<p><b>The Code</b><br>
<a href="http://github.com/">GitHub</a>

【讨论】:

  • 好吧,你绝对是在正确的轨道上!我得到的那个 404 错误显示 %E2%80%9D 我猜是那些奇怪的引号。我回去编辑报价。它们现在在 TextField() 中看起来很正常,但是当我查看博客文章并检查它正在呈现的元素时:github 这绝对不是我输入的内容。我的其他 HTML 渲染得很好,知道为什么链接让我失望吗?
  • 这是我通常用来转义 HTML 的方法,但由于某种原因,
  • 您究竟是如何转义 HTML 的?
  • 我终于明白了。正如您所指出的,引号不是“正确的”双引号。一旦我修复了它并添加了 http:// 前缀,它就意识到我不是在寻找相对路径。
【解决方案2】:

我认为你应该试试&lt;a href="http://www.google.com"&gt;google&lt;/a&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 2010-11-04
    • 2011-09-28
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多