【问题标题】:Django 400 Bad Request when run in production with gunicorn使用 gunicorn 在生产中运行时出现 Django 400 错误请求
【发布时间】:2022-01-12 10:50:19
【问题描述】:

当我将 django 应用程序从一个托管服务移动到另一个托管服务时,我的所有页面上都出现 400 错误,我移动到的托管服务是 Scalingo。

我的settings.py 文件:

DEBUG = os.getenv("DEBUG") == "True"
ALLOWED_HOSTS = [x.strip() for x in os.getenv("ALLOWED_HOSTS").split(",")]

我的环境变量

ALLOWED_HOSTS="my-app.osc-fr.scalingo.fr,.localhost,127.0.0.1,[::1]"
DEBUG="False"

我联系了客户支持,他们告诉我这一定是我的应用的配置问题。

我在这里找到的所有现有答案都建议确保 ALLOWED_HOSTS 变量是正确的,并且我已经根据托管平台的 django 特定文档检查了它是否包含所需的地址。

【问题讨论】:

    标签: django gunicorn production-environment


    【解决方案1】:

    最后我通过在settings.py 文件中执行print(ALLOWED_HOSTS) 并检查构建日志来调试问题。

    原来这个平台上的环境变量被加载时包含引号,导致['"my-app.osc-fr.scalingo.fr','.localhost','127.0.0.1','[::1]"']

    我编辑了环境变量以删除引号,它可以工作!

    不确定为什么要考虑引号,因为我可以将它们放在其他托管平台和本地,但它们会被忽略。如果有人知道,我很想知道!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 2015-06-17
      • 2018-08-27
      • 2014-02-19
      • 1970-01-01
      • 2016-08-25
      相关资源
      最近更新 更多