【问题标题】:Nginx is not serving Django static filesNginx 不提供 Django 静态文件
【发布时间】:2012-08-04 16:08:59
【问题描述】:

我刚刚为一个非常基本的 django 网站配置了我的第一个 django 服务器。我正在使用带有主管和 gunicorn 的 Django 1.4 和 Nginx 1.0.14。

问题是 Nginx 没有像预期的那样提供静态文件,但我不知道为什么,因为我是第一次使用它。

这是我的静态文件真正存在的路径:

/home/cristian/envs/santalupe.com/santalupe/santalupe/static

这是我在 nginx 配置文件中的设置:

# Django admin media.
location /media/ {
autoindex on;
    alias /home/cristian/envs/santalupe.com/lib/python2.7/site-packages/django/contrib/admin/static/;
}

# Site media
location /static/ {
autoindex on;
    alias /home/cristian/envs/santalupe.com/santalupe/santalupe/static/;
}

请让我知道在这种情况下我需要做什么,因为我不知道真正的问题。

【问题讨论】:

  • 你只是得到 404 吗?这些规则是在 nginx 配置中的 location / 之上还是之下?
  • 我得到了 404。规则在'location /'之上
  • 文件肯定在那个文件夹里? nginx 是否正确地将正常连接传递到应用程序服务器上?
  • 是的,我的静态文件在那个文件夹中。 Nginx 的其他方面运行良好,我认为...

标签: django file static nginx


【解决方案1】:

您提供的不是 Nginx 的管理媒体,而是普通媒体。尝试类似:

location /admin/media/ {
    # this changes depending on your python version
    root /home/cristian/envs/santalupe.com/lib/python2.7/site-packages/django/contrib;
}

请注意如何没有尾部斜杠,并且路径以 contrib 结尾。我在生产中几乎完全成功地使用了这段代码。

【讨论】:

    【解决方案2】:

    也许服务器上的manage.py collectstatic 对你有帮助?

    【讨论】:

    • 对我没用,我只是运行了这个命令并重置了项目,没有任何改变
    【解决方案3】:

    【讨论】:

      猜你喜欢
      • 2021-12-02
      • 2020-09-14
      • 1970-01-01
      • 2016-01-28
      • 2022-10-06
      • 2018-08-26
      • 2017-05-31
      • 1970-01-01
      • 2011-01-27
      相关资源
      最近更新 更多