【发布时间】: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 过滤器的方式。到目前为止,它可以很好地让我的<p> 等不理会。然而,我并没有留下我的href 链接!
{% autoescape off %}
{% block content %}
<p>{{ post.body|safe }}</p>
{% endblock %}
{% endautoescape %}
【问题讨论】:
-
您能否在此处粘贴代码 - 我怀疑您对问题的描述不准确,因为您的示例使用 http 和 https 作为 Google 网址