是否可以使用Django从JS文件中包含CSS(这里是棘手的部分)?

时间:2008-12-19 00:49:35

标签: javascript css django dom

据我所知,在动态JS文件中无法使用{%include%}来包含样式。但是我不想再次要求服务器下载样式。

也许通过采用样式表并将其注入文档的head元素是可能的......有没有人这样做过?

3 个答案:

答案 0 :(得分:4)

在你的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 :(得分:1)

使用jquery ......

$('head').append($('<link rel="stylesheet" type="text/css" href="style.css">'))

答案 2 :(得分:0)

我可以想象你想要动态生成JS或CSS的情况,但通常你最好为每个创建静态文件,并使你的代码足够通用以满足你的所有需求。

这超出了代码重用的简单问题 - 如果您动态生成任何此类代码,则每次使用时都需要重新下载。你浪费CPU时间渲染模板,浪费带宽一遍又一遍地通过线路发送相同(或可能相同)的数据。

但是如果你有一个很好的元编码用例,就没有理由你也不能:

a)将JS或CSS放在渲染模板的标题(或JS的主体)中 b)为JS或CSS创建一个视图,并使用Django的模板引擎来渲染它们。

{%include%}标记适用于(a),而(b)您只需使用普通HTML来引用视图的网址。