Lorsque Django est Debug=True, aucune configuration n'est requise. Django recherchera le chemin STATIC dans l'application. Lorsque le projet est déployé et mis en ligne, fermez DEBUG et vous constaterez que tous les fichiers statiques ne parviennent pas à charger 404.
environnement:
apache2.4
django2.0
python3.7
configurer
1. Fichier httpd.conf
Alias /static/ /var/www/xxx/static/(你自己的static文件路径)
Alias /media/ /var/www/xxx/media/
(Remarque sur les fichiers de déploiement nginx)
location /static{
alias /var/www/xxx/static;(你自己项目static路径)
}
location /media{
alias /var/www/xxx/media;
}
2. fichier setup.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 'DIRS': [os.path.join(BASE_DIR, 'templates/').replace('\\', '/')] (linux系统)
'DIRS': [os.path.join(BASE_DIR, 'templates/')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
INSTALLED_APPS添加-- 'django.contrib.staticfiles' ,
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'apps.XXX',
'apps.XXX',
]
#找一处添加
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(__file__),'static')
STATICFILES_DIRS=[os.path.join(BASE_DIR, 'static')]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
3, urls.py ajouter
#导包
from . import settings
from django.conf.urls.static import static
#添加这行(末尾)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
4. Collectez des fichiers statiques
#执行收集静态资源这句
python manage.py collectstatic