【问题标题】:Parse URL w/ django & nginx使用/django 和 nginx 解析 URL
【发布时间】:2018-08-19 13:34:45
【问题描述】:

所以我正在构建一个 django Web 应用程序并尝试使用 nginx 部署它。

语言页面加载,但是当我点击链接时,我得到 nginx 400 Bad Request 错误。

浏览器中的 url 如下所示:

"GET /%7B$%%20url%20'members:member_login'%20%%7D HTTP/1.1" 400 173 "-" "-" "-"

但是,如果我进入浏览器并手动删除多余的字符以获得:

/url'members:member_login'

然后它可以正常工作并呈现页面。有谁知道我可以在我的 nginx 配置文件或 django 代码中添加什么来解决这个问题?这已经难倒我 2 周了。

【问题讨论】:

  • 这是一个相当奇怪的 URL,看起来你在 URL 中“编码”了一个字符串。通常 Django 的想法是编写干净的 URL,通常不包含需要转义的字符。

标签: python django url nginx encoding


【解决方案1】:

这看起来像是您的模板中的错误:%7b{%20。我认为您单击的链接的href 属性可能有错字,可能是:

<a href="{$% url 'members:member_login' %}">...

而不是

<a href="{% url 'members:member_login' %}">...

对于这些类型的错误,请务必检查浏览器中的实际 html 源代码(右键单击 -> chrome 中的“查看页面源代码”)。

【讨论】:

  • 哇。非常感谢。和你说的完全一样。我不小心把美元符号作为错字输入了。希望随着我获得更多经验,我可以像这样进行故障排除,我永远不会意识到这些字符代表其他字符串。
猜你喜欢
  • 2015-05-06
  • 2018-03-24
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
相关资源
最近更新 更多