【发布时间】:2012-06-28 21:23:39
【问题描述】:
我正在尝试创建独立的前端模块(HTML、CSS 和 JS)以集成到 Django 应用程序中。 我的意思最好的例子是“地图”模块,我想将它包含在各种不相关的页面中,可能在每个页面的不同位置。
我有一个提供地图所需的 HTML 代码的模板,我希望 CSS 和 JS 代码也包含在此模板中,以简化前端依赖项的处理。
到目前为止,这可以使用{% include %} 标签来实现。
但是在 HTML 页面中间包含样式表和脚本在前端性能方面是一种非常糟糕的做法。 (CSS应该包含在<head>中,JS应该包含在<body>的末尾)
如果{% include %} 标签被呈现为包含它们的模板的一部分并且可以覆盖{% block %} 标签,我的问题可能已经解决。在 Django 中情况并非如此。 {% include %} 标签首先呈现为 HTML,然后才包含在内,因此它们不能覆盖 {% block %} 标签。
查看有关该主题的过去问题表明,普遍的智慧是使用模板继承(即{% extends %})而不是{% include %},但由于我希望我的模块是独立的,我不知道如何在我的情况下,我可以使用继承。
我可以做些什么来维护模板内的前端依赖项,同时保持前端性能最佳实践?
谢谢!
【问题讨论】: