В веб-приложении, помимо бизнес-логики c и обработки данных, нам также необходимо обрабатывать и управлять stati c ресурсами, такими как CSS, JavaScript, images et c. Важно управлять этими ресурсами, чтобы они не влияли на производительность нашего приложения. Django очень эффективно справляется с этим и предоставляет удобный способ использования ресурсов.
Для обслуживания файлов c выполните следующую процедуру. Добавьте следующее в settings.py
settings.py
#STATIC_URL: specifies what to append when you call `{% static %}` as template tag.
STATIC_URL = '/static/'
#STATIC_ROOT: specifies where exactly you yourself will put your static files
STATIC_ROOT = os.path.join(BASE_DIR, 'staticroot')
#STATICFILES_DIRS: it tells Django where to look for static files while
#serving a request.
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
После этого создайте каталог staticroot
в вашем root вашего проекта . Затем поместите все свои javascript
, css
, images
туда и выполните следующую команду.
python manage.py collectstatic
Эта команда соберет все файлы в папку /static/
.
Теперь, чтобы обслуживать ваши stati c файлы во время разработки, добавьте следующие к вашим основным urls.py
urls.py
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# Your URL configs
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
После этого вы можете использовать ваши stati c файлы где угодно. Например: вам нужно добавить фоновое изображение в ваши шаблоны, вы должны добавить следующий код
шаблон. html
<!--{% load static %} should be always top of your template file. It tells
Django to load your static files inside template. -->
{% load static %}
<!--{% static 'resource_url' %} means STATIC_URL+'resource_url'. (STATIC_URL
defined inside your settings.py) -->
<img src="{% static "my_app/example.jpg" %}" alt="My image">
Это должно решить вашу проблема.