1

AsseticをTwig(Zend上)に接続しようとしています。debug = falseの場合は問題なく動作するようですが、開発で何が行われるのか理解できません。

基本的に、これを呼び出すとき:

{% javascripts 'static/js/*.js' %}
    <p>{{asset_url}}</p>
{% endjavascripts %}

生成されたjavascriptファイル名のリストを出力します(これは素晴らしいです):

js/d19cc07_part_1_jquery-1.7.2.min_6.js
js/d19cc07_part_1_jquery.cookie_7.js
js/d19cc07_part_1_jquery.jeditable.mini_8.js

ただし、これらのファイルはライターによって生成されません(js / d19cc07.jsのみを生成します)。debug = falseの場合、1つのファイル名のみを出力し、正しくレンダリングします。

だから私はここで何が欠けていますか?

これが私がそれを初期化する方法です:

    //Assetic
    $factory = new \Assetic\Factory\AssetFactory(APP_BASE_PATH . '/public/');
    $factory->setDebug(true);
    $am = new \Assetic\Factory\LazyAssetManager($factory);

    //enable loading assets from twig templates
    $loader = new \Twig_Loader_Filesystem(array());
    $loader->addPath(APP_BASE_PATH.'/application/templates/default');

    //Init twig
    $twig = new \Twig_Environment($loader);
    $twig->addExtension(new \Assetic\Extension\Twig\AsseticExtension($factory));

    $am->setLoader('twig', new \Assetic\Extension\Twig\TwigFormulaLoader($twig));


    $templates = array('/index/index.html'); //An array containing full paths to my templates

    foreach ($templates as $template) {
        $resource = new \Assetic\Extension\Twig\TwigResource($loader, $template);

        $am->addResource($resource, 'twig');
    }

    //Writer
    $writer = new \Assetic\AssetWriter(APP_BASE_PATH . '/public/static/assetic');
    $writer->writeManagerAssets($am);

    echo $twig->render('index/index.html');
4

1 に答える 1

0

結局、Symfony コンソールを Zend プロジェクトに接続し、assetic から DumpCommand を少し採用して、これを機能させました (私のバージョンの DI コンテナーに割り当てられた AsseticManager を渡すことにより)。

于 2012-05-17T20:28:50.760 に答える