Шаблон Django в статическом каталоге?

Это хорошая практика - помещать мои шаблоны django в мой статический каталог?

collectstatic все равно скопирует все мои файлы шаблонов в статический каталог. Почему бы не поместить статические файлы в статический каталог напрямую?


person arthur.sw    schedule 12.06.2015    source источник


Ответы (2)


Является ли хорошей практикой помещать мои шаблоны django в мой статический каталог?

В общем, нет, потому что это делает их вызываемыми извне (путем прямого доступа к http://example.com/static/templates/base.html) и может раскрыть некоторые из ваших внутренних структур данных, открывая теги шаблона и переменные контекста. Однако иногда это используется для предоставления шаблонов для фреймворков Javascript в контексте приложения HTML5.

Шаблоны, представленные в этом контексте приложения HTML5, однако, не используют какой-либо уровень шаблонов Django, и для таких случаев использования это, возможно, лучшее решение для полного разделения внешнего интерфейса и внутреннего интерфейса. Но варианты использования и реализации различаются в этой области.

В любом случае collectstatic скопирует все мои файлы шаблонов в статический каталог. Почему бы не поместить статические файлы в статический каталог напрямую?

Нет, это произойдет только в том случае, если вы сохраните их в каталоге static вашего приложения, что было бы неправильной привычкой (опять же, если специально не было выбрано как способ предоставления шаблона приложению Javascript). Если вы сохраните их в templates/myapp, они не будут скопированы. Кроме того, это не сработало бы из коробки, поскольку Django по умолчанию не ищет STATIC_ROOT для шаблонов.

person sthzg    schedule 12.06.2015
comment
Очень подробно и полезно - person Ben Hsieh; 12.06.2015

Нет, совсем нет.

Шаблоны - это не статические файлы. collectstatic не копирует файлы ваших шаблонов в статический каталог. Нет смысла их туда класть.

person Daniel Roseman    schedule 12.06.2015