Django 无空间模板标签的优点

Posted

技术标签:

【中文标题】Django 无空间模板标签的优点【英文标题】:Django spaceless template tag advantages 【发布时间】:2013-01-23 19:32:04 【问题描述】:

我最近一直在想这个问题,Django的spaceless模板标签到底是什么目的?

显然它会从 html 标记中删除空格,但除此之外它是否会提高页面加载速度?

我的意思是,从 html 文件中删除空格是否有任何帮助?

【问题讨论】:

【参考方案1】:

拥有一个跨越边界(ala Ifs 和 Fors)的 %spaceless% 版本是有意义的,遗憾的是 Django 不支持这个简单的功能。我有一个由我添加的动态类,并且空格中有几十行(所有空格都与模板匹配)。这对于 Django 的开发人员来说应该不会太难添加。 给每个 if 添加 spaceless 是非常愚蠢的。

如果他们真的很担心,你也可以有一个深度参数。

【讨论】:

【参考方案2】:

换行符/空格是一个字符,是的,它会增加文件大小,尤其是对于大型循环和人类可读性优化的模板文件(如大型 FK 列表)。

在基本模板中添加 % spaceless % 也非常简单和安全。

它还允许您保持模板代码缩进以提高可读性,但适当地为 HTML 呈现无空格(我认为逗号是一种常见情况)。

【讨论】:

谢谢。我只是想确定 :) 它会影响事物的外观。如果您有<strong>X</strong> <a href="#">Y</a>,那么% spaceless % 将删除内联元素stronga 之间的空间,这意味着渲染将XY 而不是X Y 的预期渲染我建议使用更智能的缩小器如django-htmlmin或google pagespeed apache/nginx module 参见:groups.google.com/forum/#!topic/django-users/x9tF3RO3rFg TLDR:由流行的 django 请求添加,效率低于 Gzip,或者它可能比什么都不做更糟糕,html 代码不应该被人类阅读,django 开发人员会压制如果可以的话。

以上是关于Django 无空间模板标签的优点的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Django 模板标签、Twitter Bootstrap 中嵌入 YouTube 链接

“模板规则匹配无命名空间中的元素”消息

如何在不使用 js 或 html 的情况下摆脱 django 模板变量中的空间和 amp

如何在可重用的应用程序中将命名空间 url 与 django 一起使用

在选择2标签文本防止空间

K近邻算法