Je suis nouveau à Django! Quand j'utilise la commande python manage.py collectstatic
j'obtiens cette erreur
Django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path
Mais je peux réussir à exécuter le serveur.
Mes déclarations de fichiers statiques sont:
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
('assets', os.path.join(PROJECT_DIR, '../static')),
)
et le débogage est défini sur true
DEBUG = True
Comment puis-je réparer cela? Sinon, il manque des paquets d'installation?
Essaye ça,
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
Regardez https://docs.djangoproject.com/en/dev/ref/settings/#std:setting-STATIC_ROOT
Vous devez obligatoirement donner le chemin dans STATIC_ROOT dans settings.py où tous vos fichiers statiques sont collectés, par exemple: -
STATIC_ROOT = "app-root/repo/wsgi/static"
STATIC_URL = '/static/'
STATICFILES_DIRS = (
('assets', 'app-root/repo/wsgi/openshift/static'),
)
vous pouvez créer un dossier 'statique' dans n'importe quel sous-dossier et y inclure les fichiers requis. Dans settings.py, ajoutez les lignes de code suivantes:
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
STATIC_URL = '/static/'
Après avoir exécuté python manage.py collectstatic
, un nouveau dossier statique sera créé dans le dossier de votre application parent.
STATIC_ROOT = "/var/www/YourSiteFolder/static/"
STATIC_URL = '/static/'
regardez https://docs.djangoproject.com/fr/1.11/howto/static-files/#deployment
J'ai dû mettre STATIC_ROOT
et STATIC_URL
au-dessus de la déclaration STATICFILES_DIRS
.
bien eu cette erreur aussi. J'ai réparé:
STATIC_URL = '/static/'
if DEBUG:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
else:
STATIC_ROOT = os.path.join(BASE_DIR,'static')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')