Assetic和Silex - 调试模式

时间:2013-04-17 02:34:34

标签: php silex assetic

第一个Stackoverflow问题。 UHUH!

Silex-Assetic正在努力。

按照https://github.com/mheap/Silex-Assetic/blob/master/doc/assetic.rst上的文档和https://github.com/mheap/Silex-Assetic-Demo上的演示,我最终得到了这个:

$app->register(new SilexAssetic\AsseticServiceProvider());

$app['assetic.path_to_web'] = __DIR__ . '/assets/min';
$app['assetic.options'] = array(
    'debug'              => true,
    'auto_dump_assets'  => true
);

$app['assetic.filter_manager'] = $app->share(
$app->extend('assetic.filter_manager', function($fm, $app) {
        $fm->set('yui_css', new Assetic\Filter\Yui\CssCompressorFilter(
            __DIR__ . '/../yuicompressor-2.4.7.jar'
        ));
        $fm->set('yui_js', new Assetic\Filter\Yui\JsCompressorFilter(
            __DIR__ . '/../yuicompressor-2.4.7.jar'
        ));

        return $fm;
    })
);

$app['assetic.asset_manager'] = $app->share(
    $app->extend('assetic.asset_manager', function($am, $app) {
        $am->set('dragons', new Assetic\Asset\AssetCache(
            new Assetic\Asset\GlobAsset(
                __DIR__ . '/assets/css/*.css',
                array($app['assetic.filter_manager']->get('yui_css'))
            ),
            new Assetic\Cache\FilesystemCache(__DIR__ . '/../cache/assetic')
        ));
        $am->get('dragons')->setTargetPath('dragons-min.css');

        return $am;
    })
);    

而且,在我的twig文件中:

{% stylesheets '../../assets/css/*.css' filter='yui_css' output='/assets/min/dragons-min.css' %}
    <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}

我遇到两个问题:

  • 不知怎的,我以/assets/min/dragons-min.css/assets/min/assets/min/dragons-min.css
  • 中的dragons-min.css文件结尾
  • 如果启用调试模式,我最终会收到奇怪的文件。

像这样:

<link href="/assets/min/dragons-min_part_1_bootstrap.min_1.css" type="text/css" rel="stylesheet" />
<link href="/assets/min/dragons-min_part_1_main_2.css" type="text/css" rel="stylesheet" />
<link href="/assets/min/dragons-min_part_1_normalize_3.css" type="text/css" rel="stylesheet" />

如果调试模式已关闭,我想调用/assets/css上的原始文件。而且最终还是没有重复的目录结构。

文档在这个阶段非常糟糕,我对Silex也有点新意。我很乐意让你的结构和代码受到你的挑战。 :)

1 个答案:

答案 0 :(得分:0)

我会查看这个repo,它是如何集成AsseticServiceProvider的一个更好的例子。 https://github.com/lyrixx/Silex-Kitchen-Edition