Почему мы используем css-файлы для каждого приложения в Django?

#css #django

Вопрос:

Я следую курсу Django по Udemy, где инструктор использовал определенные css файлы для каждого созданного им приложения, мой вопрос очень прост: зачем нужно создавать css файлы для каждого приложения? я спрашиваю об этом, потому что эти конкретные css файлы для этого конкретного могут повлиять на другие стили веб-сайта.

Например, почему мы не можем просто создать глобальные css файлы для всего веб-сайта, и все?

Ответ №1:

Почти во всех фреймворках приложения спроектированы как самостоятельные элементы, вставляемые на веб-страницу. Они часто предназначены для замены на странице с помощью другого приложения, а также для передачи, поскольку их можно использовать для других веб-страниц. Наличие файла CSS для каждого приложения гарантирует, что само приложение будет стабильным в нескольких вариантах использования. Многие фреймворки также используют таблицы стилей css для index.html файла или базовой веб-страницы, содержащей приложения-компоненты.

Комментарии:

1. Спасибо, это достаточно просто, так что это не обязательно, это просто условность или, скажем, лучшая практика.

2. Да, «лучшие практики», вероятно, лучший способ подумать об этом.

Ответ №2:

Django не ограничивает вас наличием css-файла для каждого приложения. Это соглашение о кодировании, которое использовалось инструктором, и, вероятно, это хорошая идея, как указал Дж._ _ Карлсон. Вы можете вызвать свой css-файл из любого другого приложения, используя тот же код шаблона.

Например, эта строка может относиться к main.css файлу для app1, но эта строка также может быть вставлена в html-файл в app2.

 <link rel="stylesheet" href="{% static 'app1/css/main.css' %}" type="text/css" />
 

Хотя это, по-видимому, удовлетворяет принципу написания кода только один раз, проблема, с которой вы столкнетесь, заключается в том, что любое приложение, ссылающееся на код вне себя, не будет переносимым, и вам придется изменять его по каждому проекту, если вы попытаетесь повторно использовать код в другом месте.