使用另一个用于静态文件的文件夹部署 Django 站点
Deploy a Django Site with another folder for static files
我的环境是 Django 1.10.7、PostgreSQL 9.4 和 Nginx 1.6 以及 Gunicorn
我有一个名为 static 的全局文件夹,用于子应用程序中使用的常见静态文件,然后我为生产模式设置了另一个文件夹,名称为 'static_root':
在我的 settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static")
]
在我的 urls.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;
}
我的环境是 Django 1.10.7、PostgreSQL 9.4 和 Nginx 1.6 以及 Gunicorn
我有一个名为 static 的全局文件夹,用于子应用程序中使用的常见静态文件,然后我为生产模式设置了另一个文件夹,名称为 'static_root':
在我的 settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static_root')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static")
]
在我的 urls.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;
}