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