我的模板中的代码是:
<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 ,实际上并不存在。
为什么url_for()在使用nginx时没有返回正确的URL?
答案 0 :(得分:0)
我也在Github中提出这个问题。感谢miguelgrinberg的帮助,它已经解决了
FastCGI往往会遇到这样的问题,由于奇怪的原因,传递给应用程序的CGI环境变量设置不正确。
我在manage.py中添加两行,它在nginx中运行良好。
from werkzeug.contrib.fixers import CGIRootFix
app = CGIRootFix(app,app_root='/')