Чтобы статические файлы работали в Django, вам нужно иметь пару переменных на месте.
Во-первых, в вашем settings.py
вам нужно будет установить статические переменные файла.
Здесь я покажу вам пример того, что я использую:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'staticfiles')
STATICFILES_DIRS = (
'static',
os.path.join(os.path.dirname(BASE_DIR), 'static')
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
Это означает, что вам нужно иметь статическую папку в той же папке, что и ваше основное приложение.
Например:
├── apps
│ ├── api
│ ├── blog
│ └── home
├── manage.py
├── media
│ ├── images
│ └── original_images
├── requirements
│ ├── base.txt
│ ├── development.txt
│ └── production.txt
├── src -----> THIS IS MY MAIN FOLDER
│ ├── __init__.py
│ ├── __pycache__
│ ├── db.sqlite3
│ ├── locale
│ ├── media
│ ├── settings ------> THIS IS MY SETTINGS FOLDER
│ ├── urls.py
│ └── wsgi.py
├── static ------> THIS IS MY STATIC FOLDER
│ ├── css
│ ├── figures
│ ├── fonts
│ ├── img
├── templates
│ └── base.html
└── utilities
Далее вам нужно добавить это к своему основному urls.py
:
from django.conf.urls.static import static
from django.conf import settings
# Serve static files with Django. Normally this is for development purposes.
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
После этого последняя часть перейдет в ваши шаблоны, вы 'Вам нужно будет загрузить статические теги шаблонов и использовать следующий синтаксис:
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'music/style.css' %}">
В конце он будет отображать что-то вроде:
<link rel="stylesheet" type="text/css" href="/static/music/style.css">