Команда «collectstatic» не работает, когда WhiteNoise включен

Я пытаюсь использовать статические файлы через WhiteNoise в соответствии с рекомендацией Heroku . Когда я запускаю collectstatic в своей среде разработки, это происходит:

 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>. 

Команда static collection запускается без инцидентов, когда я прокомментирую эту строку в моих настройках:

 STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

Что здесь не так, и как я могу это исправить? Я уже пробовал очистить мою статическую папку вывода файлов. Он работает плавно, пока не начнет обработку одного конкретного файла.

6 Solutions collect form web for “Команда «collectstatic» не работает, когда WhiteNoise включен”

Проблема здесь в том, что css/iconic/open-iconic-bootstrap.css ссылается на файл open-iconic.eot , который не существует в ожидаемом местоположении.

Когда вы запускаете collectstatic с этим хранилищем, Django пытается переписать все URL-адреса в ваших файлах CSS, чтобы они ссылались на файлы по их новым именам, например, css/iconic/open-iconic.8a7442ca6bed.eot . Если он не может найти файл, он останавливается с этой ошибкой.

У меня была эта ошибка с отсутствием файла .css, когда все мои файлы .css существовали, потому что я доверял документации Heroku:

 STATIC_ROOT = 'staticfiles' 

над документацией WhiteNoise:

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

Фиксирование тривиально, но пока Heroku не зафиксирует свои документы (я отправил отзыв), давайте убедимся, что решение, по крайней мере, появится в SO.

У меня просто была такая же проблема и исправлено это, удалив эту строку из моего файла настроек,

 STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

Я получил эту строку на странице документации Heroku …

Для меня исправить было просто добавление «статической» папки в верхний каталог (myapp / static сделал трюк). Если вы устанавливаете STATIC_URL, но не создали этот каталог, он выдает ошибку, даже если вы не используете этот каталог для своих статических файлов с помощью whitenoise.

 STATIC_URL = '/static/' 

Проблема здесь в том, что использование

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

или

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

использует статическое хранилище файлов Django по-другому, чем делает сервер. См. Документы Django для некоторых объяснений: https://docs.djangoproject.com/en/1.11/ref/contrib/staticfiles/#django.contrib.staticfiles.storage.ManifestStaticFilesStorage.manifest_strict

Я считаю, что ссылочный манифест создается, когда вы запускаете collectstatic, поэтому это должно временно исправлять эту проблему, но вы, вероятно, не хотите запускать collectstatic перед каждым тестовым запуском, если вы изменили какие-либо статические файлы. Другим решением было бы отключить эту настройку для ваших тестов и просто запустить ее в процессе производства.

Он работал для меня, комментируя whitenoise в settings.py на производстве.

 #STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' #WHITENOISE_ROOT = os.path.join(BASE_DIR, 'staticfiles') 
  • ISBN контрольная цифра, пользовательская обратная связь
  • Есть ли способ установить параметр по умолчанию, равный другому значению параметра?
  • Альтернатива urllib.urlretrieve в Python 3.5
  • Pythonic способ поддерживать присвоение переменной
  • Установка NLTK со Стэнфордским НЛП (как StanfordNERTagger, так и StanfordPOSTagger) для испанского
  • Как избежать ошибок с плавающей запятой?
  • Мой сценарий IDLE возвращает странную ошибку
  • Можно ли вызвать exec так, чтобы он был совместим как с Python 3, так и с Python 2?
  •  
    Interesting Posts for Van-Lav

    Python: прочитайте несколько json-файлов из папки

    Пытается разобрать JSON на Python. ValueError: ожидание имени свойства

    Действительный JSON, дающий JSONDecodeError: Ожидание, разделитель

    Как я могу переписать python __version__ с git?

    Как распаковка кортежа отличается от обычного назначения?

    Изменения в Python после погружения в Python

    Вызов одного метода из другого в том же классе в Python

    Патчи, которые я добавляю к моему графику, не являются непрозрачными с альфа = 1. Зачем?

    Есть ли чистый способ получить n-й столбец таблицы html с помощью BeautifulSoup?

    что является самым простым способом создания таблицы, использующей django db api и основываясь на сценариях Standalone Django,

    CherryPy против Django

    Вставка заголовка в форму Django

    SQLALchemy От многих до многих конфигураций отношений модели с полиморфными моделями

    Чтение из файла с использованием pickle и для цикла в python

    Прочтите USB-устройство чтения карт памяти с Linux? OMNIKEY CardMan 3121 USB

    Python - лучший язык программирования в мире.