Python manage.py collectstatic не работает: TypeError: элемент последовательности 0: ожидается экземпляр str, найден NoneType
Я следил за этим видео на Youtube: https://www.youtube.com/watch?v=inQyZ7zFMHM1
Мой проект до сих пор отлично работает со статическими файлами, все файлы загружаются и работают должным образом. Итак, теперь мне нужно развернуть сайт на Heroku и для этого я загрузил базу данных на Amazon AWS, используя это видео.
После создания ведра я выполнил конфигурации, как указано в видео (скопировал статические файлы в Bucket AWS), но это не сработало для меня. Он всегда показывал мне ошибку, что failed to load the resources
В результате поиска я нашел команду python manage.py collectstatic
для загрузки файлов в Bucket, поэтому я попробовал ее, но вот какую ошибку я продолжаю получать
TypeError: sequence item 0: expected str instance, NoneType found
Я много искал по этому вопросу, но не смог понять, в чем проблема. Это та же ошибка, которую я получил, когда сам загрузил статические файлы в Bucket и попытался загрузить изображение профиля
Мой settings.py
файл выглядит следующим образом,
Это моя requirements.txt
asgiref==3.5.2
boto3==1.24.50
botocore==1.27.50
Django==4.1
django-filter==22.1
django-storages==1.13.1
djangorestframework==3.13.1
jmespath==1.0.1
Markdown==3.4.1
multielo==0.4.1
numpy==1.23.1
pandas==1.4.3
Pillow==9.2.0
psycopg2==2.9.3
python-dateutil==2.8.2
pytz==2022.1
s3transfer==0.6.0
six==1.16.0
sqlparse==0.4.2
tzdata==2022.1
urllib3==1.26.11
validate-email==1.3
Структура моего файла выглядит следующим образом,
Все статические файлы работают нормально, если они находятся на localhost, но не работают после соединения с AWS. Однако, база данных Postgres загружена на AWS и работает нормально (то есть, я могу создавать пользователей и т.д., используя базу данных AWS, и они работают нормально.)
Закомментируйте 'STATICFILES_DIRS' и попробуйте снова. Это использовалось только в моей разработке.
Также на заметку, я бы удалил ключи доступа из конфигурации вашего bucket при публикации здесь. Даже в продакшене они не должны быть там видны. Вы можете использовать JSON файл конфигурации или другой метод, который не позволяет получить доступ.
Вы неправильно написали AWS_KEY_ACCESS_KEY_ID
Должно быть AWS_ACCESS_KEY_ID
Программа ожидает строку с AWS_ACCESS_KEY_ID
, но поскольку она написана неправильно, вместо нее получается None
. По этой причине вы получаете ошибку NoneType Found