【发布时间】:2015-06-12 04:43:37
【问题描述】:
我的模板中的代码是这样的:
<a href="{{ url_for('.post',id=post.id) }}"><h2 >{{ post.title }}</h2></a>
我的博客网址是localhost:5000/index/all,看起来像(使用app.run()):
第一篇文章的网址是localhost:5000/post/10
但是如果我使用 fcgi 和 nginx,它看起来像这样:
第一篇文章的网址是localhost:5000/index/all/post/10,实际上并不存在。
为什么我使用 nginx 时 url_for() 没有返回正确的 url?
【问题讨论】:
-
这里很难看出问题所在,请考虑重新措辞清楚。一般来说,nginx 和 url_for 没有任何关系,url_for 是flask 内部的。您应该通过使用浏览器的“检查元素”功能检查页面本身上的链接元素来检查页面是否按照您的期望正确呈现。对我来说,“.post”似乎有点奇怪,不知道为什么会有一个“。” (点)那里。
-
现在这更清楚了,您有一个相对与绝对的问题,请参阅stackoverflow.com/questions/12162634/…,我认为 url_for 参数中的 _external=True 应该适用于您的情况。
-
@GG_Python 我想我没有把我的问题描述清楚。它看起来与那个问题相似但不同的问题。没关系。我解决了这个问题,我会在下面添加答案