17

私はTwigを使用しており、HTML 出力を縮小できるようにしたいと考えています。どうすればいいですか?を試し{% spaceless %}ましたが、すべてのテンプレートにそれを追加する必要があります。Twig エンジン内でミニフィケーションを追加できますか?

4

3 に答える 3

2

たとえば、src/Controllerディレクトリに BaseController があります。

  1. BaseController を作成する必要があります
  2. コントローラから拡張
  3. Controller クラスの render メソッドをオーバーライドする
  4. そして、すべてのコントローラーでこのメソッドを使用します
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 を拡張することもできます。

于 2018-04-19T11:03:32.267 に答える
-7

使用する

{% spaceless %}
YOUR WHOLE PAGE GOES HERE HTML, TWIG, JS EVERYTHING...
{% endspaceless %}

小枝のバージョンがタグを認識しない可能性があります。小枝の最新バージョンを更新するだけです。

これにより、生成される出力 html が縮小され、コンパイルされたバージョンの html のみがロードされるため、ページのロードが増加します。

読み取り可能な状況でコードを表示することはできますが。

于 2014-04-12T12:16:02.947 に答える