Можно ли использовать Django для включения CSS (вот сложная часть) из файла JS? - PullRequest
1 голос
/ 19 декабря 2008

Насколько я знаю, невозможно использовать {% include%} в динамическом файле JS для включения стилей. Но я не хочу делать еще один звонок на сервер для загрузки стилей.

Возможно, это было бы возможно, если взять таблицу стилей и вставить ее в элемент head документа ... Кто-нибудь делал это раньше?

Ответы [ 3 ]

4 голосов
/ 19 декабря 2008

В вашем файле JS:

var style = document.createElement('link');
style.setAttribute('rel', 'stylesheet');
style.setAttribute('type', 'text/css');
style.setAttribute('href', 'style.css');
document.getElementsByTagName('head')[0].appendChild(style);

Надеюсь, это поможет.

1 голос
/ 28 ноября 2009

С jquery ...

$('head').append($('<link rel="stylesheet" type="text/css" href="style.css">'))
0 голосов
/ 19 декабря 2008

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

Это выходит за рамки простого повторного использования кода - если вы динамически генерируете что-либо из этого, его необходимо будет повторно загружать при каждом его использовании. Вы тратите время процессора на рендеринг шаблонов и тратите пропускную способность, отправляя одни и те же (или потенциально одни и те же) данные по проводам снова и снова.

Но если у вас есть хороший вариант использования для метакодирования, нет никаких причин, почему вы тоже не можете:

a) поместите JS или CSS в заголовок (или тело, в случае JS) вашего отрендеренного шаблона б) создать представление для JS или CSS и использовать механизм шаблонов Django для их рендеринга.

Тег {% include%} будет хорошо работать для (а), а для (б) вы просто будете использовать обычный HTML-код для ссылки на URL вашего представления.

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