#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
того, ни другого.