Установка правильной структуры статического дерева "my_app/static/my_app/example.jpg" в Django

Согласно шагу 4 в статье Django's Static Article, наилучшей практикой является установка статической древовидной структуры вашего приложения следующим образом:

my_app/static/my_app/example.jpg

... чтобы уменьшить проблемы с дублированием/именованием при последующем запуске collectstatic, поскольку два приложения МОГУТ иметь одинаковые по названию статические файлы.

Итак, как мне настроить параметры и шаблоны моих приложений для такой структуры? Сейчас у меня просто есть папка static внутри каждого приложения, и мои файлы в ней. Моя папка settings.py выглядит следующим образом:

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = str(BASE_DIR) + "/media/"

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash if there is a path component (optional in other cases).
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '/media/'

# Absolute path to the directory that holds static files.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = str(BASE_DIR) + "/static/"

# URL that handles the static files served from STATIC_ROOT.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

...и мои шаблоны, которые импортируются из соответствующих статических папок, выглядят следующим образом:

<link rel="stylesheet" href="{% static "style.css"%}" />

Чтобы реализовать то, о чем говорится в статье, нужно ли мне зайти в шаблон каждого приложения и изменить приведенную выше строку на что-то вроде:

<link rel="stylesheet" href="{% static "my_app/style.css"%}" />

... или есть способ настроить его примерно так:

<link rel="stylesheet" href="{% static % MY_APP "style.css"%}" />

Кажется довольно беспорядочным иметь папку "my_app", внутри папки "my_app/static", но я думаю, что я понимаю логику для сохранения беспорядка позже. Ищу лучший способ сделать это.

Вернуться на верх