la commande' collectstatic ' échoue lorsque la couleur blanche est activée

je suis en train de servir des fichiers statiques à l'aide de WhiteNoise par Heroku's recommandation. Quand je run collectstatic dans mon environnement de développement, cela arrive:

Post-processing 'css/iconic/open-iconic-bootstrap.css' failed!

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/core/management/base.py", line 533, in handle
    return self.handle_noargs(**options)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 168, in handle_noargs
    collected = self.collect()
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 120, in collect
    raise processed
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 242, in post_process
    content = pattern.sub(converter, content)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 181, in converter
    hashed_url = self.url(unquote(joined_result), force=True)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 128, in url
    hashed_name = self.stored_name(clean_name)
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 277, in stored_name
    cache_name = self.clean_name(self.hashed_name(name))
  File "/home/Pieter/.virtualenvs/radiant/lib/python3.4/site-packages/django/contrib/staticfiles/storage.py", line 91, in hashed_name
    (clean_name, self))
ValueError: The file 'css/fonts/open-iconic.eot' could not be found with <whitenoise.django.GzipManifestStaticFilesStorage object at 0x7f57fc5b1550>.

la commande de collecte statique s'exécute sans incident lorsque je commente cette ligne dans Mes paramètres:

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

Qu'est-ce qui ne va pas ici et comment puis-je le réparer? J'ai déjà essayé de vider mon fichier statique dossier de sortie. Il fonctionne bien jusqu'à ce qu'il commence un traitement spécifique fichier.

19
demandé sur Pieter 2014-11-09 17:50:16

8 réponses

Le problème ici est que css/iconic/open-iconic-bootstrap.css fait référence à un fichier, open-iconic.eot, qui n'existe pas dans l'emplacement prévu.

Lorsque vous exécutez css/iconic/open-iconic.8a7442ca6bed.eot. S'il ne trouve pas le fichier, il s'arrête avec cette erreur.

16
répondu D. Evans 2014-11-13 11:47:21

j'ai eu cette erreur en prétendant une disparition .fichier css quand tous mes .les fichiers css existaient, parce que J'ai fait confiance à la documentation D'Heroku:

STATIC_ROOT = 'staticfiles'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

le correctif est trivial, mais jusqu'à ce que Heroku corriger leurs docs (j'ai soumis des commentaires), permet de s'assurer que la solution apparaît au moins dans SO.

7
répondu Aur Saraf 2015-02-21 02:40:51

j'ai juste eu le même problème et résolu en supprimant cette ligne de mon fichier de paramètres

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

j'ai eu cette ligne de la page de documentation D'Heroku...

7
répondu user772401 2015-09-02 07:44:13

Le problème ici est que l'utilisation de

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

ou

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage

utilise le stockage statique de fichiers de Django d'une manière différente de celle de runserver. Voir les Docs de Django pour une explication: https://docs.djangoproject.com/en/1.11/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.ManifestStaticFilesStorage.manifest_strict

je crois que le manifeste référencé est construit quand vous exécutez collectstatic, donc cela devrait corriger ce problème temporairement, mais vous ne voulez probablement pas exécuter collectstatic avant chaque essai si vous avez modifié des fichiers statiques. Une autre solution serait de désactiver ce réglage pour vos tests, et de l'exécuter en production.

2
répondu Jeff 2017-09-08 18:50:48

pour moi, le correctif était simplement d'ajouter un dossier 'static' au répertoire supérieur (myapp/static a fait l'affaire). Si vous définissez le répertoire STATIC_URL mais que vous n'avez pas déjà créé ce répertoire, il y aura une erreur, même si vous n'utilisez pas ce répertoire pour vos fichiers statiques avec whitenoise.

STATIC_URL = '/static/'
2
répondu Colton Hicks 2017-09-08 19:33:26

cela a fonctionné pour moi en commentant la settings.py en production.

#STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
#WHITENOISE_ROOT = os.path.join(BASE_DIR, 'staticfiles')
1
répondu Taiwo O. Adetiloye 2017-09-23 20:13:34

j'ai eu le même problème, mais avec une torsion.

je me suis déployé sur Python anywhere. Si je deviens debug True, app fonctionne très bien. Mais si un turn debug False, app crash avec une erreur qui avec une ligne étant le résumé

ValueError: Missing staticfiles manifest entry for 'favicons/favicon.ico'

j'ai changé de STATIC_ROOT = 'staticfilesSTATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

Supprimé staticfiles dossier, puis exécutez à nouveau python manage.py collectstatic.

Maintenant app fonctionne très bien

1
répondu Parousia 2018-02-02 12:49:41

j'ai eu affaire à ce problème tous les jours. Il s'avère que le problème était l' staticfiles le répertoire n'a pas été coché sur git. J'ai créé un fichier fictif dans ce répertoire, Je l'ai vérifié et tout allait bien. Cela a aussi été mentionné quelque part dans la documentation de Whitenoise, je crois.

0
répondu ravioli 2018-10-01 11:20:58