Глобальные статические файлы Django не загружаются

#django #django-models #django-templates #django-views #django-staticfiles

#django #django-модели #django-шаблоны #django-просмотры #django-staticfiles

Вопрос:

Я хочу иметь глобальные статические файлы и шаблоны для всех моих приложений. В моих приложениях также будут шаблоны и статические файлы, это будет выглядеть примерно так:

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

 {% load staticfiles %}

href="{% static  'bootstrap/css/bootstrap.min.css' %}"
  

и я получаю:

«Ошибка сети: внутренняя ошибка сервера 500 — http://localhost:8000/static/bootstrap/css/bootstrap.min.css «

Кстати, я могу получить доступ к своим статическим приложениям, но не к глобальным, я отлаживаю STATIC_ROOT и PROJECT_ROOT, и они кажутся хорошими.

 PROJECT_ROOT ='C:\webpages\client_portal\client_portal'

projectname]/                  <- project root 
├── [projectname]/              <- Django root
│   ├── __init__.py
│   ├── settings/
│   ├── urls.py
│   └── wsgi.py
├── apps/
│   └── __init__.py
│
├── manage.py
│
├── static/
│   └── GLOBAL STATIC FILES
└── templates/
    └── GLOBAL TEMPLATES
  

Мой settings.py выглядит примерно так:

 STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

STATIC_ROOT = os.path.join(PROJECT_ROOT, '/static')
STATIC_URL = '/static/'

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, '/static'),
)
  

Комментарии:

1. Попробуйте сохранить static_root в виде пустой строки, а затем проверьте, можете ли вы получить доступ к статическим файлам.

Ответ №1:

STATIC_ROOT и STATICFILES_DIRS не должны совпадать. Создайте другой каталог, например staticfiles , для хранения ваших статических файлов разработки и используйте его вместо STATICFILES_DIRS .

Ответ №2:

Я думаю, ваша проблема в том, что у вас есть ненужная косая черта STATICFILES_DIRS . Так что измените это:

 STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, '/static'),
)
  

к этому:

 STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)
  

Надеюсь, это поможет, это сработало для меня в Django 2.0, без необходимости использования PROJECT_ROOT ни STATIC_ROOT того, ни другого.