压缩/缩小动态html

Dav*_*542 11 html compression django gzip

我正在使用django模板,为了便于阅读,我的html看起来类似于以下内容:

{% if some_variable %}
    text
{% else %}
    nothing exists here
{% endif %}

{% for item in set %}
    {% if forloop.first %}
...etc...
Run Code Online (Sandbox Code Playgroud)

它在运行时转换为以下html,其中包括大量的空格和返回:

text

<div>

  <li

        class='some_class

    >

    some text

   </li>

</div>

etc...
Run Code Online (Sandbox Code Playgroud)

在查看页面源时,有些页面甚至可以运行~3,000行html.

有没有工具在运行时压缩这个HTML?如何删除额外的换行符?

Fil*_*vić 5

对于一些背景知识,这是故意完成的,因为Django的模板引擎目前不关心在标签被剥离后评估为空白的行消毒,这样做会在响应服务中产生一些轻微的性能损失,因为它涉及到后处理步骤,用于评估呈现模板的完整内容.

尽管如此,如果您需要快速解决方案,我建议您使用StripWhitespaceMiddleware响应中间件,它将从文本响应中删除虚假空白.它非常快速和直接,采用像模板引擎本身一样的正则表达式匹配.如果你真的关心那些仍在阅读原始反应的穷人,那么一个更有趣但更强大的替代方案是部署一个利用HTML美化的响应中间件.

  • 还有其他问题与过多的空白相关而不是可读性,例如具有大量并发请求的网站上的带宽,但这通常与*更大的网站*如雅虎,Facebook等有关.我同意你的答案的精神,但是,空白膨胀通常是一个丑陋的问题,设计师和非IT执行类型发现"pwoblematic".我遇到过的最好的情况是*源标记*由标记 - 无法评判代表代码质量的情况.有趣的是,有时我们忍受薪水. (2认同)