3

Symfony2 を使用してプロジェクトを構築しようとしており、可能なすべての最適化が含まれています。その 1 つが、html で使用される画像の最適化です。Symfony2 にはバンドル Assetic があり、Twig テンプレートから直接 optipng を使用してこれを可能にします。ドキュメントはこちら: http://symfony.com/doc/2.0/cookbook/assetic/jpeg_optimize.html

私が抱えている問題は、開発環境 (すべての資産アセットがコントローラーを介して提供される) ですべてが機能することですが、CLI コマンドはファイルにダンプされ、レンダリングされたテンプレートでは使用されません。

これはアセットをダンプしたときの出力です。ファイルは後で /web/assetic で利用できます。

Dumping all prod assets.
Debug mode is off.

[file+] /home/projects/dashboard/data/dashboard/app/../web/js/4a3b4dc.js
[file+] /home/projects/dashboard/data/dashboard/app/../web/css/9640074.css
[file+] /home/projects/dashboard/data/dashboard/app/../web/assetic/1d666d2.png
[file+] /home/projects/dashboard/data/dashboard/app/../web/assetic/dfaa6c9.png
[file+] /home/projects/dashboard/data/dashboard/app/../web/assetic/5f2dd31.png

ページを表示すると、これらの URL が呼び出されます

<img src="/assetic/ad39e3f.png">
<img src="/assetic/69fbd4a.png">
<img src="/assetic/e4a4ede.png">

ただし、Css と js は機能します。

私の設定ファイル:

# Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    java: /usr/bin/java
    filters:
        cssrewrite: ~
        closure:
             jar: %kernel.root_dir%/Resources/java/compiler.jar
        yui_css:
             jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar
        optipng:
            apply_to: "\.png$"
            level:    3
        jpegoptim:
            apply_to: "\.jpe?g$"
            strip_all: true
    twig:
        functions:
            jpegoptim: { output: images/*.jpg }
            optipng: { output: images/*.png }

私の小枝のテンプレート:

 <img src="{{ optipng('@KunstmaanDashboardBundle/Resources/public/images/foursquare-logo.png') }}" style="margin-bottom: 0;" />
4

2 に答える 2

1

また、CSS 圧縮のために Symfony2 で Assetic を使用することはもうお読みになりましたか? 彼らが話しているのは奇妙な動作かもしれないので、そのページのポイント 4 にスキップして、言及されているプル リクエストを見てください (https://github.com/symfony/symfony/pull/509)。それはあなたの問題を解決するかもしれません:p.

于 2011-11-22T10:24:09.747 に答える