2010-08-23 3 views
9

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

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

ответ

0

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

0

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

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

0

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


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

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

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

1

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

Смежные вопросы