当我使用nginx时,url_for()没有工作

时间:2015-06-12 04:43:38

标签: nginx flask fastcgi

我的模板中的代码是:

<a href="{{ url_for('.post',id=post.id) }}"><h2 >{{ post.title }}</h2></a>

我的博客网址是 localhost:5000 / index / all ,看起来像(使用app.run()):

enter image description here

第一篇帖子的网址是 localhost:5000 / post / 10

但是如果我使用fcgi和nginx,它看起来像这样:

enter image description here

第一篇帖子的网址是 localhost:5000 / index / all / post / 10 ,实际上并不存在。

为什么url_for()在使用nginx时没有返回正确的URL?

1 个答案:

答案 0 :(得分:0)

我也在Github中提出这个问题。感谢miguelgrinberg的帮助,它已经解决了

FastCGI往往会遇到这样的问题,由于奇怪的原因,传递给应用程序的CGI环境变量设置不正确。

我在manage.py中添加两行,它在nginx中运行良好。

from werkzeug.contrib.fixers import CGIRootFix


app = CGIRootFix(app,app_root='/')