【问题标题】:Django Static Files Not Being Found (debug off)找不到 Django 静态文件(调试关闭)
【发布时间】:2016-07-22 17:10:29
【问题描述】:

当调试关闭时,我无法让 Django 正确引用我的静态文件。我知道这个网站上有很多关于这个的其他帖子,但没有一个能解决我的问题。

我的目录树是这样的:

└── project
    └── app1
    └── app1
    ├── manage.py
    └── project
    └── project.sock
    └── projectenv
    └── static
    └── template

在我的settings.py 我有以下内容:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")

在我的 nginx 配置文件中,我有以下内容:

location /static {
        autoindex on;
        alias /home/user/myproject/static/;
}

运行./manage.py collectstatic 正确地将我的所有文件放入静态目录。

但是,在运行我的服务器时,所有这些静态文件 404:

[22/Jul/2016 17:05:31] "GET /static/lib/bootstrap/js/bootstrap.min.js HTTP/1.1" 404 6418
[22/Jul/2016 17:05:31] "GET /static/lib/bootstrap/css/bootstrap.min.css HTTP/1.1" 404 6418
[22/Jul/2016 17:05:31] "GET /static/lib/jquery/jquery.min.js HTTP/1.1" 404 6418
[22/Jul/2016 17:05:31] "GET /static/lib/bootstrap/js/bootstrap.min.js HTTP/1.1" 404 6418

静态文件与我的 manage.py 文件放在同一目录中。我做错了什么?

在我的 urls.py 中添加它确实有效,但我不应该直接从 nginx 提供它们吗?

if settings.DEBUG is False:   #if DEBUG is True it will be served automatically
    urlpatterns += patterns('',
            url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}),
    )

因为静态文件渲染是通过 Django 进行的,所以速度较慢 由您的网络服务器直接提供服务

【问题讨论】:

  • 你能在这里列出你的项目目录结构吗?
  • 是否为您的应用程序提供静态文件?还能检查static目录的权限吗?
  • 我不了解 nginx,但与使用 Apache 服务所需的代码相比,这看起来像是很少的编码。看看这里的 Apache 示例docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/…
  • 静态目录有正确的权限。

标签: python django nginx


【解决方案1】:

你应该配置你的 nginx:编辑 nginx.conf 如下:添加这个:

location ~* ^(/static/|/media/).+.(jpg|jpeg|gif|png|zip|eot|woff|woff2|svg|ttf|tgz|gz|rar|bz2|doc|xls|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf)$ {
    root /path/to/parent/folder/of/static/folder;
}

到与您的网站对应的server { 子句,然后重新启动 nginx,它应该可以解决您的问题,如果没有 - 检查 nginx 日志,确保该文件夹对 nginx 用户/组等具有适当的权限

【讨论】:

  • 这个正则表达式与我当前的配置有何不同?现在不应该当一个以静态指向我的目录的 url 开头吗?
猜你喜欢
  • 2021-08-27
  • 2014-11-10
  • 2011-08-26
  • 2020-06-22
  • 2021-08-16
  • 2020-06-20
  • 2019-06-24
相关资源
最近更新 更多