Yii2资产排除文件,发布目录

时间:2016-09-23 11:19:18

标签: php yii2 assets

我想发布一些Asstes。例如,由bower或composer下载的animate.css,但我不想将不需要的文件复制到web asstes文件夹中。 我已经使用了发布选项,但有些文件夹仍然被复制,但没有内容。

源文件夹看起来像这样:

/animate.css
./bower.json
./source
./source/bouncing_exits
./source/bouncing_exits/bounceOutLeft.css
./source/bouncing_exits/bounceOutDown.css
./source/bouncing_exits/bounceOutUp.css
./source/bouncing_exits/bounceOutRight.css
./source/bouncing_exits/bounceOut.css
./source/fading_exits
./source/fading_exits/fadeOutRight.css
./source/fading_exits/fadeOutLeft.css
./source/fading_exits/fadeOutDown.css
./source/fading_exits/fadeOutUp.css
./source/fading_exits/fadeOutLeftBig.css
./source/fading_exits/fadeOut.css
./source/fading_exits/fadeOutRightBig.css
./source/fading_exits/fadeOutDownBig.css
./source/fading_exits/fadeOutUpBig.css
./source/fading_entrances
./source/fading_entrances/fadeInRight.css
./source/fading_entrances/fadeInUp.css
... some more
./animate-config.json
./package.json
./gulpfile.js
./animate.min.css
./LICENSE

资产包看起来像这样

namespace frontend\assets;

use yii\web\AssetBundle;

/**
 * Main frontend application asset bundle.
 */
class AnimateAsset extends AssetBundle
{
    /**
     * @inherit
     */
    public $sourcePath = '@bower/animate.css';

    /**
     * @inherit
     */
    public $css = [ 
        'animate.min.css',
    ];

    /**
     * @inherit
     */
    public $js = [
    ];

    /**
     * @inherit
     */
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
        'yii\bootstrap\BootstrapPluginAsset',
    ];


       public $publishOptions = [
//        'forceCopy' => YII_DEBUG,
        'only' => [
            'animate.min.css',
        ],
        'exept' => [
            'source/*',
            'source/',
            'source',
        ],
    ];
}

最后,网络资产文件夹中的结果如下所示

./source
./source/bouncing_exits
./source/fading_exits
./source/fading_entrances
./source/lightspeed
./source/zooming_entrances
./source/zooming_exits
./source/bouncing_entrances
./source/rotating_entrances
./source/attention_seekers
./source/sliding_exits
./source/rotating_exits
./source/flippers
./source/specials
./source/sliding_entrances
./animate.min.css

空文件夹仍然被复制? 我该如何防止这种情况?

1 个答案:

答案 0 :(得分:0)

thx soju,这是一个错字:

下面的发布选项可以使用

public $publishOptions = [
//        'forceCopy' => YII_DEBUG,
        'only' => [
            'animate.min.css',
        ],
        'except' => [
            'source',
        ],
    ];