无法覆盖资产/压缩Yii2的yii \ web \ JqueryAsset

时间:2017-03-02 07:08:02

标签: php jquery yii2 compression override

我正在尝试在yii2框架中压缩CSS和JS,它对我来说运行正常,但我无法覆盖资产包中的yii \ web \ JqueryAsset。我正在压缩Asset组件,但是我想从cdn加载一个外部jQuery库,以便如何覆盖bundle中的JqueryAsset。

这是我的压缩配置文件。

Yii::setAlias('@webroot', __DIR__ . '/../web');
 Yii::setAlias('@web', '/');

return [
    // Adjust command/callback for JavaScript files compressing:
    'jsCompressor' => 'java -jar tool/compiler.jar --js {from} --js_output_file {to}',
    // Adjust command/callback for CSS files compressing:
    'cssCompressor' => 'java -jar tool/yuicompressor.jar --type css {from} -o {to}',
    // The list of asset bundles to compress:
    'bundles' => [
         'frontend\assets\main\SrpAsset',
         'frontend\assets\main\VdpAsset'
        // 'yii\web\YiiAsset',
        // 'yii\web\JqueryAsset',
    ],
    // Asset bundle for compression output:
    'targets' => [
        'srpDekho' => [
            'class' => 'yii\web\AssetBundle',
            'basePath' => '@webroot',
            'baseUrl' => '/',
            'js' => 'compress/srp-compressed.js',
            'css' => 'compress/srp-compressed.css',
            'depends' => [
                'frontend\assets\main\SrpAsset'
            ],
        ],
        'vdpDekho' => [
            'class' => 'yii\web\AssetBundle',
            'basePath' => '@webroot',
            'baseUrl' => '/',
            'js' => 'compress/vdp-compressed.js',
            'css' => 'compress/vdp-compressed.css',
            'depends' => [
                'frontend\assets\main\VdpAsset'
            ],
        ],
    ],
    // Asset manager configuration:
    'assetManager' => [
        'basePath' => __DIR__,
        'baseUrl' => '',
        'bundles' => [
            'yii\web\JqueryAsset' => [
               'sourcePath' => null,
               'basePath' => null,
               'js' => ['//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js']
            ]
        ]
    ],
];

以下我用于压缩资产的命令。

./yii asset frontend/web/config.php common/config/assets_compressed.php

一切正常,所有js和css都是压缩但不是外部库。那么,我怎样才能在资产包中覆盖它。

//cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js

2 个答案:

答案 0 :(得分:0)

我没问题。

我的压缩配置文件的一部分:

    // Asset manager configuration:
'assetManager' => [
    'basePath' => '@webroot/assets',
    'baseUrl' => '@web/assets',
    'bundles' => [
        DateTimePickerAsset::class => [
            'js' => ['js/bootstrap-datetimepicker.js', 'js/locales/bootstrap-datetimepicker.ru.js']
        ],
        'yii\web\JqueryAsset' => [
            'sourcePath' => null,   // не опубликовывать комплект
            'js' => [
                '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js',
            ]
        ],
    ]
],

Sources and bundles from debug info

您可以在此处https://www.yiiframework.com/doc/guide/2.0/en/structure-assets#customizing-asset-bundles

中显示更多信息

答案 1 :(得分:-1)

您可以直接在项目中下载该链接