Django при развертывании веб-сайта возникает ошибка ImproperlyConfigured - PullRequest
0 голосов
/ 18 января 2020

Я настраиваю новый Django веб-сайт, используя Cpanel. После завершения всех процедур и запуска этого кода python manage.py collectstatic я получаю следующую ошибку:

    Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "/home/massvnrc/virtualenv/mysite/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
    utility.execute()
  File "/home/massvnrc/virtualenv/mysite/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 345, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/massvnrc/virtualenv/mysite/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 195, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/home/massvnrc/virtualenv/mysite/3.7/lib/python3.7/site-packages/django/core/management/__init__.py", line 40, in load_command_class
    return module.Command()
  File "/home/massvnrc/virtualenv/mysite/3.7/lib/python3.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 32, in __init__
    self.storage.path('')
  File "/home/massvnrc/virtualenv/mysite/3.7/lib/python3.7/site-packages/django/contrib/staticfiles/storage.py", line 48, in path
    raise ImproperlyConfigured("You're using the staticfiles app "
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.

Ниже приведена конфигурация, вызывающая ошибку:

STATIC_URL = '/static/'
MEDIA_URL='/media/'
STATICFILES_DIRS=[BASE_DIR+"/assets",]
MEDIA_ROOT='/home/****/public_html/media'
STATIC_ROOT='/home/****/public_html/static'

Честно говоря, Не знаю, где находится ошибка, и подобные проблемы не помогают мне решить проблему.

Пожалуйста, помогите мне

Ответы [ 2 ]

2 голосов
/ 19 января 2020

Как я вижу в вашем коде, вам нужно добавить STATIC_ROOT = '' в ваши settings.py Что python manage.py collectstati c сделать, чтобы собрать stati c файлы из каталога.

поместите вашу папку stati c files в папку вашего приложения.

Я столкнулся с той же ошибкой. Поэтому я предлагаю вам сообщить Сначала укажите путь к файлам * stati c, а затем снова введите команду collectstati c.

Вот процедура:

Step1: Поместите ваши файлы stati c сначала в папку приложения вашего проекта.

Step2: Добавьте этот STATIC_ROOT = 'путь, куда вы хотите собрать эти stati c файлы'

, куда вы хотите извлеките эти файлы * stati c.

Если проблема не устранена или вам нужна дополнительная помощь, не стесняйтесь комментировать

1 голос
/ 19 января 2020

В настройках правильная конфигурация для stati c будет выглядеть так:

STATIC_URL = '/static/'
STATIC_ROOT = '' #This tell where the static file location inside static dirs. Empty means current
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'), #Note this is tuple, and path is /home/../DjangoFolder/static
)
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

Ваша файловая структура похожа на

DjangoProject #(This is the BASE_DIR path)
 |-manage.py
 |-Django app folder
 |-static #<- you created this folder
 |-media #<- you created this folder

Столько, сколько вы можете избежать использования путей в качестве Строка, так как могут возникнуть проблемы при переходе на производство. Вместо этого используйте библиотеку 'os', чтобы получить текущий путь к каталогу. Обычно все папки доступны из BASE_DIR, если вы настраиваете его, как описано в Django.

...