【问题标题】:Seeing Django debug 404 page despite having DEBUG = False尽管有 DEBUG = False,但看到 Django 调试 404 页面
【发布时间】:2020-12-14 12:34:50
【问题描述】:

我一直在关注this tutorial 来部署我的第一个 Django 站点,并已成功到达“配置 Nginx 以代理传递到 Gunicorn”部分,这一切似乎都在工作。

我的问题是,尽管我的 settings.py 文件包含以下内容:

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

我仍然收到 Django 的 debug=true 404 页面并出现以下错误:

“您看到此错误是因为您的 Django 设置文件中有 DEBUG = True。将其更改为 False,Django 将显示标准 404 页面。”

在完成教程中的“将 Nginx 配置为代理传递给 Gunicorn”步骤后,我通过从我的 GitHub 存储库中提取更改,将文件更改为 DEBUG = False。我是否错过了 Nginx 的额外步骤以关闭调试并提供标准 404 页面?

编辑:实际上,我对存储库中的 settings.py 文件所做的任何调整,当拉到服务器上时,似乎都没有任何效果。我注释掉了整个 settings.py 文件,看看它是否会破坏网页;什么也没发生。

【问题讨论】:

    标签: django nginx


    【解决方案1】:

    我猜你在代码编辑后没有重启网络服务器。尝试重新启动 Gunicorn 服务器,当您使用 django runserver 命令时,它会在代码发生任何更改时自动重新启动 Web 服务器。 Gunicorn 默认情况下不这样做,如果您希望 Gunicorn 也自动重启服务器,请使用 --reload 参数运行它。但不建议投入生产

    【讨论】:

    • 是的......许多网络服务器有效地缓存正在运行的软件(和相关文件),因此不会[必然......]自动识别更改。因此,您只需要告诉他们重新加载即可。
    • 谢谢伊万和@mike-robinson。我运行了以下命令,现在在同一 IP 地址上收到“错误请求 (400)”。 sudo systemctl daemon-reload sudo systemctl restart gunicorn sudo systemctl restart nginx
    • 伊万,迈克,我们成功了!我意识到我早些时候将 ALLOWED_HOSTS 更改为“localhost”以尝试解决此问题。将其更改回IP,现在一切正常。谢谢两位的帮助,保重!
    猜你喜欢
    • 2017-10-28
    • 2011-11-21
    • 2021-07-22
    • 1970-01-01
    • 2017-06-01
    • 2010-10-30
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多