使用另一个静态文件文件夹部署Django站点

使用另一个静态文件文件夹部署Django站点,django,django-staticfiles,Django,Django Staticfiles,我的环境是使用Django 1.10.7、PostgreSQL 9.4和使用Gunicorn的Nginx 1.6 我有一个名为static的全局文件夹,用于在子应用程序中使用公共静态文件,然后我为生产模式设置了另一个名为“static_root”的文件夹: 在my settings.py中 STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static_root') STATICFILES_DIRS = [ os.path

我的环境是使用Django 1.10.7、PostgreSQL 9.4和使用Gunicorn的Nginx 1.6

我有一个名为static的全局文件夹,用于在子应用程序中使用公共静态文件,然后我为生产模式设置了另一个名为“static_root”的文件夹:

在my settings.py中

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static")
]
在my url.py中:

from django.conf import settings
from django.conf.urls.static import static
if settings.DEBUG:
    urlpatterns += (static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT))
    urlpatterns += (static(settings.STATIC_URL, document_root=settings.STATIC_ROOT))
当调试为真时,所有工作都很完美,但在生产模式下,站点看不到静态文件

我也在nginx配置中设置了位置


谢谢!

我找到了问题的答案

问题是我在nginx配置中设置了:root

location /static {
    root /var/projects/project/static_root;
}
正确的方法是:别名

location /static {
    alias /var/projects/project/static_root;
}