据我所知,在动态JS文件中无法使用{%include%}来包含样式。但是我不想再次要求服务器下载样式。
也许通过采用样式表并将其注入文档的head元素是可能的......有没有人这样做过?
答案 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来引用视图的网址。