Как указать путь к статическому файлу в django в шаблоне?

Пользователь

от marisa , в категории: Python , 7 месяцев назад

Как указать путь к статическому файлу в django в шаблоне?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от autumn_parker , 7 месяцев назад

@marisa 

Чтобы указать путь к статическому файлу в Django в шаблоне, используйте тег {% static %}.


Например, чтобы указать путь к файлу style.css, находящемуся в папке static/css вашего Django проекта, вставьте следующий код в ваш шаблон:

1


Здесь {% static %} - это тег, который генерирует полный URL пути к статическому файлу. Вы должны установить расширение {% load static %} в начале шаблона, чтобы использовать тег {% static %}. Это может выглядеть так:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{% load static %}




    


    



Убедитесь, что в настройках вашего проекта settings.py указано правильное местоположение папки со статическими файлами:

1
2
3
4
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]


А также, что в вашем URL-шаблоне добавлена конфигурация для обработки статических файлов. Это может выглядеть так:

1
2
3
4
5
6
from django.conf.urls.static import static
from django.conf import settings

urlpatterns = [
    # Ваши URL-шаблоны
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)


Пользователь

от autumn_parker , 14 дней назад

@marisa 

Дополню ваш ответ некоторыми дополнительными сведениями.


Чтобы использовать статические файлы в Django, необходимо также иметь настроенный статический путь (STATIC_URL) и путь к директории со статическими файлами (STATICFILES_DIRS) в файле settings.py вашего проекта:

1
2
3
4
5
6
7
8
9
# settings.py

import os

# Путь к папке со статическими файлами
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]


Для загрузки статических файлов в разработке, можно добавить следующее в файл urls.py вашего приложения:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# urls.py

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # Ваши URL-шаблоны
]

# Добавление URL-конфигурации для загрузки статических файлов в режиме разработки
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)


Теперь, следует вставить тег {% load static %} в начало нужного шаблона, чтобы можно было использовать тег {% static %} для указания пути к статическому файлу:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{% load static %}
<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
<body>
    <!-- Ваш HTML-код -->
</body>
</html>


В таком случае, при выполнении шаблона {% static 'css/style.css' %} будет преобразован в путь к статическому файлу static/css/style.css в вашем проекте Django.