web-dev-qa-db-fra.com

Impossible d'effectuer collectstatic

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?

52
user3383301

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

105
dhana

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'),

    )
8
Sheesh Mohsin

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.

1
Mayur Raj
STATIC_ROOT = "/var/www/YourSiteFolder/static/"
STATIC_URL = '/static/'

regardez https://docs.djangoproject.com/fr/1.11/howto/static-files/#deployment

0
Raoof Arakkal

J'ai dû mettre STATIC_ROOT et STATIC_URL au-dessus de la déclaration STATICFILES_DIRS.

0
ehacinom

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')
0
sebuhi