Symfony2如何压缩HTML输出?

12

我知道Twig有一个{% spaceless %}过滤器,但它只删除HTML标签之间的空格。

我需要为站点中的每个页面返回一行HTML。我有一个可以处理这个问题的正则表达式,但我不知道在sf2中应该在哪里使用它,因为一切都是自动完成的。

我认为我必须注册一个新的模板引擎或添加一个Twig扩展,但我找不到足够的关于这个主题的文档,所以我卡住了。

有什么想法吗?

1个回答

10
为了在所有视图输出上运行您的正则表达式,您可以钩入由Symfony2框架分派的kernel.response事件。
来自于kernel.response章节:
此事件的目的是允许其他系统在创建响应对象后修改或替换该对象:
public function onKernelResponse(FilterResponseEvent $event)
{
    $response = $event->getResponse();

    // ... modify the response object
}

我建议阅读内部章节,以获取更多详细信息。


1
是的,我确定。我认为去空格过滤器不是用来做那个的,所以我不能将其报告为错误。它只会删除HTML标签之间的空格。 - HappyDeveloper
有时它甚至无法做到这一点,我在我的代码中看到许多换行符,在HTML标记之间,所以我想像往常一样运行自己的正则表达式,但我不知道如何在这个框架中实现。 - HappyDeveloper
1
答案是“内部”部分,谢谢。现在我已经得到了单行的HTML输出 =p - HappyDeveloper
我认为去掉空格不是一个好的解决方案。例如,<i class="fa fa-lg fa-fw fa-home"></i> <span class="menu-item-parent">Dashboard</span> 和<i class="fa fa-lg fa-fw fa-home"></i><span class="menu-item-parent">Dashboard</span>(注意关闭 i 标签后的空格)是不同的。 - Denis V
大家都提出了很好的观点。我已经修改了答案以回应这些评论。 - Stephen Watkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接