Django - Теги шаблонов в файлах JavaScript и CSS - PullRequest
9 голосов
/ 23 августа 2010

Есть ли способ добавить теги шаблона в файлы javascript и css? Я бы использовал его для чего угодно, от передачи URL-адресов до ссылок на медиа-ссылки (пути к изображениям и т. Д.), До условного JavaScript, основанного на разрешениях пользователя.

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

Ответы [ 4 ]

1 голос
/ 27 марта 2015

Как насчет определения переменных JavaScript и атрибутов CSS из внутри вашего HTML-шаблона Django, между тегами script и style ?Я знаю, это звучит как хак, но мне кажется, что это аккуратно, так как это позволит вам контролировать свои динамические переменные из одного места.

0 голосов
/ 23 августа 2010

Вы можете обслуживать любой тип контента, например, шаблон, это не обязательно должен быть HTML. Тем не менее, в зависимости от настроек, вы не сможете использовать его для остального статического содержимого.

Один из вариантов, если вы хотите заменить только такие элементы, как мультимедийные URL-адреса, - это «скомпилировать» эти шаблоны в статические файлы, которые вы можете использовать. Это не будет работать для чего-либо, что является условным на основании разрешений текущего пользователя. Вам нужно будет написать скрипт для вызова django.template.loader.render_to_string и записывать результат в файл каждый раз, когда вы развертываете или меняете медиа-URL и т. Д.

0 голосов
/ 12 июля 2012

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


Но вы можете очень легко прикрепить файлы JS и CSS к определенным шаблонам страниц, используя Джанго-sekizai .(Я использую его как часть django-cms, но он тоже работает автономно.)

Он позволяет вам внутри обычного шаблона страницы определять требуемые статические ресурсы шаблона в блоке.Есть один блок для CSS и один для JS.Эти блоки могут быть напечатаны в вашем base.html.Он также обрабатывает дубликаты, поэтому вам не нужно беспокоиться о добавлении одних и тех же файлов несколько раз.См. документ об использовании .

. С этой системой вы не будете отправлять какие-либо ограниченные JS или CSS, поскольку django будет запускать только авторизованные шаблоны, а содержимое никогда не будет добавлено в JSCSS блоки.

0 голосов
/ 23 августа 2010

Ваша идея - верный путь. Если вы хотите использовать инструменты шаблонов Django, то проще всего подать файл JS в качестве шаблона. См. этот вопрос для ситуации, подобной вашей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...