我正在使用Twig,我希望能够缩小HTML输出。我该怎么做呢?我尝试了{% spaceless %}
,但这需要将其添加到我的所有模板中。我可以在Twig引擎中添加缩小功能吗?
答案 0 :(得分:4)
这可能对你有所帮助。
使用html-compress-twig你可以在一个package.use composer中压缩html,css,js来安装composer require nochso/html-compress-twig
,你必须使用这个代码添加带有twig的Extension。
$app->extend('twig_theme', function($twig_theme, $ojt) {
$twig_theme->addExtension(new nochso\HtmlCompressTwig\Extension());
return $ojt_theme;});
最后转到你的模板文件中添加此代码。
{% htmlcompress %} ....your coding... {% endhtmlcompress %}
{{ htmlcompress('<ul> <li>') }}
{{ '<ul> <li>'|htmlcompress }}
答案 1 :(得分:1)
例如,您在src/Controller
目录中有BaseController。
class BaseController extends Controller {
protected function render($view, array $parameters = array(), Response $response = null)
{
if ($this->container->has('templating')) {
$content = $this->container->get('templating')->render($view, $parameters);
} elseif ($this->container->has('twig')) {
$content = $this->container->get('twig')->render($view, $parameters);
} else {
throw new \LogicException('You can not use the "render" method if the Templating Component or the Twig Bundle are not available. Try running "composer require symfony/twig-bundle".');
}
if (null === $response) {
$response = new Response();
}
$content = preg_replace(array('/<!--(.*)-->/Uis',"/[[:blank:]]+/"),array('',' '),str_replace(array("\n","\r","\t"),'',$content));
$response->setContent($content);
return $response;
}
}
您还可以在其他控制器中扩展BaseController。
答案 2 :(得分:-6)
使用
{% spaceless %}
YOUR WHOLE PAGE GOES HERE HTML, TWIG, JS EVERYTHING...
{% endspaceless %}
可能是您的树枝版本无法识别标签,只需更新最新版本的树枝。
这会缩小生成的输出html,并且页面加载会增加,因为它只会加载html的编译版本。
虽然您仍然可以在可读的情况下查看代码。