【问题标题】:gunicorn not serving static filesgunicorn 不提供静态文件
【发布时间】:2012-12-06 12:09:30
【问题描述】:

我一直致力于从 Ubuntu 服务器提供 Django 应用程序。我已按照http://senko.net/en/django-nginx-gunicorn/ 中的所有说明进行操作,但是当我执行gunicorn_django -b 0.0.0.0:8000 步骤时,该站点突然停止提供静态文件。该站点使用开发服务器 python manage.py runserver 0.0.0.0:8000 运行良好。

我没有更改任何东西的库存设置。任何想法为什么这不起作用?

编辑:

按照教程的其余部分和Andrew Gorcester 的建议,我添加了一个

location /static {
     root /path/to/static/files;
}

到我的 nginx sites-available 文件,一切似乎都在工作!

【问题讨论】:

  • 只是为了确认一下:你同时启动了 nginx 和 gunicorn,然后将你的网络浏览器指向 localhost 的 80 端口(不是 8000 端口),对吗?
  • 我根本没有运行 nginx。当我运行 manage.py 命令时指向我的 URL:8000 时,我确实得到了我的完整站点。
  • 好的,我会提交答案以提供更详细的信息。

标签: python django gunicorn


【解决方案1】:

Gunicorn 不是一个通用的 Web 服务器,它所做的只是为一个应用程序提供服务(在这种情况下是 django)。并且 django 不提供静态文件,除非在开发中,为了方便开发人员,因为它不是提供静态文件的有效或必然安全的工具。

如果您一直按照说明进行操作,您将被引导设置在端口 80 上运行的 nginx,这将 1) 将您的应用程序从端口 8000 代理到端口 80 和 2) 在同一端口上提供静态文件,选择根据 URL 执行每个请求。

静态文件不能在端口 8000 上运行并不需要引起警报——在此配置下,一旦正确配置了 nginx,它们应该只在端口 80 上工作。 django 还有其他可能的配置以及其他用于提供静态文件的策略,尽管它们中的大多数都遵循推荐的约定,即提供与应用程序完全分开的静态文件,就像在这种情况下一样。

【讨论】:

    猜你喜欢
    • 2017-05-31
    • 2021-07-18
    • 2015-11-30
    • 2013-06-27
    • 1970-01-01
    • 2012-09-29
    • 2023-03-05
    • 2021-06-03
    • 2016-01-02
    相关资源
    最近更新 更多