Объединение css, html и js в папке templates /

Обычно я вижу варианты этой структуры проекта в django, где статические файлы управляются apache или nginx:

app/
  - views.py
static/
    js/
      - base.js
    img/
    css/
      - base.css
templates/
  - home.html
manage.py
urls.py
settings.py

Однако приемлем ли следующий подход для крошечного приложения?

app/
  - views.py
templates/
  - base.js
  - base.css
  - home.html
manage.py
urls.py
settings.py

Если это ужасный подход, может кто-нибудь объяснить, почему? Мне кажется, что часто html-файл шаблона содержит встроенный css или javascript для определенного переопределения или удобства, поэтому описанный выше подход не сильно отличается для небольшого приложения.

Предполагая, что вам нужен подход, который действительно работал бы, это ужасно, потому что это не так.

Daniel Roseman 19.10.2018 22:46

@DanielRoseman в home.html нельзя ли включить первую строку, которая будет {% include "base.js" %} {% include "base.css" %}?

user10332687 19.10.2018 23:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
760
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Каталог static/ следует использовать только для статического содержимого, также известного как .js, .css, и файлов изображений.

Каталог template/ должен использоваться только файлами .html, потому что они загружаются из представлений django. Разделение файлов .html также может быть полезно по соображениям безопасности (все статические каталоги являются общедоступными, поэтому вам не нужно применять какие-либо правила доступа к подкаталогам).

На самом деле вам не обязательно разделять ваши статические файлы в подкаталогах, если у вас есть только 2 или 3 файла, но я бы посоветовал вам сделать это. Когда ваш проект станет немного больше, структура будет в порядке, никаких дополнительных работ по рефакторингу ...

Каждому создаваемому вами приложению должен быть предоставлен собственный каталог static, templates, media, urls. Например, в templates django советует вам создать подпапку и назвать ее так, как вы назвали свое приложение. Если вы этого не сделаете, выберите сделайте это по-другому, он все равно будет работать, но этот способ более питонический, и django настаивает на том, чтобы вы были питоническим .. Вы можете сослаться на эту ссылку для Django Docs | Принципы дизайна.

Другие вопросы по теме