Невозможно продвинуть css в сервисе heroku

Что я делаю?

  • Я пытаюсь развернуть веб-приложение django на сервере heroku.

Проблема

  • Я не могу продвигать css файлы на сервере heroku с помощью git push heroku main .

  • Когда я удаляю css файл из папки static, то все идет хорошо.

более

  • Я тоже установил whitenoise.....
remote: -----> Installing SQLite3
remote: -----> Installing requirements with pip
remote: -----> $ python manage.py collectstatic --noinput
remote:        Post-processing 'CSS/style.css' failed!
remote:        Traceback (most recent call last):
remote:          File "/tmp/build_31834d76/manage.py", line 10, in <module>
remote:            execute_from_command_line(sys.argv)
remote:          File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
remote:            utility.execute()
remote:          File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/__init__.py", line 413, in execute
remote:            self.fetch_command(subcommand).run_from_argv(self.argv)
remote:          File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/base.py", line 354, in run_from_argv
remote:            self.execute(*args, **cmd_options)
remote:          File "/app/.heroku/python/lib/python3.9/site-packages/django/core/management/base.py", line 398, in execute
remote:            output = self.handle(*args, **options)
remote:          File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 187, in handle
remote:            collected = self.collect()
remote:          File "/app/.heroku/python/lib/python3.9/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 134, in collect
remote:            raise processed
remote:        whitenoise.storage.MissingFileError: The file 'CSS/images/mobile-app.png' could not be found with <whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x7f8a24943cd0>.
remote:        The CSS file 'CSS/style.css' references a file which could not be found:
remote:          CSS/images/mobile-app.png
remote:        Please check the URL references in this CSS file, particularly any
remote:        relative paths which might be pointing to the wrong location.
remote:
remote:  !     Error while running '$ python manage.py collectstatic --noinput'.
remote:        See traceback above for details.
remote:
remote:        You may need to update application code to resolve this error.
remote:        Or, you can disable collectstatic for this application
remote:
remote:           $ heroku config:set DISABLE_COLLECTSTATIC=1
remote:
remote:        https://devcenter.heroku.com/articles/django-assets
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to trichhpali.
remote:
To https://git.heroku.com/trichhpali.git
 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/trichhpali.git'

Спасибо за помощь 🤗enter image description here

Смотрите это видео - https://www.youtube.com/watch?v=6DI_7Zja8Zc&list=PL-osiE80TeTtoQCKZ03TU5fNfx2UY6U4p&index=17

Corey, проходит через весь процесс развертывания приложения django на Heroku. Я всегда возвращаюсь к нему каждый раз, когда мне нужно развернуть приложение на Heroku. Всегда спасает положение.

Heroku не принимает статические файлы, вам нужно установить Whitenoise и указать его в настройках.

Смотрите этот документ и все получится

Whitenoise doc

Героку Вайтноуз doc

P.S: после установки whitenoise, используйте pip freeze > requirements.txt и обновите свои реквизиты

python manage.py collectstatic

будет работать

Проблема, похоже, заключается в whitenoise.storage.MissingFileError. Whitenoise ищет файл CSS/images/mobile-app.png, на который ссылается в вашем css-файле CSS/style.css . Поскольку он не может найти этот файл, он останавливается на ValueError.

Решением будет либо:

  1. Обновите место в вашем css-файле (CSS/style.css), где он ищет CSS/images/mobile-app.png. Убедитесь, что путь url, на который он ссылается, правильный. Например, вместо /images/mobile-app.png может быть CSS/images/mobile-app.png.

  2. Или добавьте недостающий файл туда, где он ожидается (CSS/images/mobile-app.png).

Вернуться на верх