繁体   English   中英

Flask flashes 出现在开发服务器上,但不是 uWSGI/Nginx

[英]Flask flashes appear on development server, but not with uWSGI/Nginx

我一直在通过制作一个小网站并使用与 python 一起运行的内置 Flask 服务器来学习 Flask。 我有一个页面,您可以在其中按下一个按钮,它会使用 Flask 内部的 flash 系统闪烁一条消息。 当我在 Windows 机器上使用内置的 Flask 服务器时,这些闪烁工作正常。 但是,我已使用通过 Nginx 的 uWSGI 将该网站部署到 Linux 服务器。 我的问题是,当我访问此服务器时,闪光灯不起作用。 加载页面之类的大多数事情在两台服务器上都可以正常工作,但闪烁已损坏。 我没有从 uWSGI 的日志中看到任何错误消息。

我用于闪存的代码实现如下:

flash("Made new post.")
return redirect(url_for("posts"))

重定向将我带到正确的页面,如果我在重定向之前运行 print() 语句,显然可以到达这些语句,则 Flash 不会执行任何操作。 我遇到的另一个主要问题是会话和尝试存储会话变量。 当我尝试这样做时也没有任何反应。 (但它适用于我的个人机器)

任何想法为什么会这样,或者至少是一种从 uWSGI 获取错误消息的方法?

要正确设置 cookie(cookie 是使消息闪烁工作的原因),nginx 和 Flask 应用程序都需要就服务器名称达成一致。

因此,请确保 nginx.conf 中的server_name与烧瓶配置中的SERVER_NAME (或SESSION_COOKIE_DOMAIN ,如果设置)匹配。

nginx 还对 cookie 的大小实施了限制,但只有当您闪现的消息非常大时,这才应该是一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM