加载资产的顺序与资产文件不符

时间:2019-05-02 15:05:38

标签: jquery-ui yii2

要在YII2.0.18中使用bootstrap v3.4.1的Tooltip功能,必须更改已加载的javascript的顺序。我无法解决。

升级到YII2.0.18后,更改了已加载的javascript的顺序。以前的脚本是按以下顺序加载的:

  • jquery-ui.js
  • bridge.js
  • bootstrap.js

现在如下:

  • bootstrap.js
  • jquery-ui.js
  • bridge.js

由于此更改,在加载bootstrap.js之前,bridge.js脚本无法重写JqueryUI脚本的工具提示功能名称。

我在bridge.js中使用以下命令:

$.widget.bridge('uitooltip', $.ui.tooltip);

AppAsset文件:

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/main.css',
        'https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css',
        'css/multi-select.css',
    ];
    public $js = [
        'js/main.js',
        'js/invoiceLines.js',
        'js/rememberTabs.js',
        'js/jquery.multi-select.js'
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'app\assets\BridgeAsset',
        'yii\bootstrap\BootstrapAsset',
        'yii\bootstrap\BootstrapPluginAsset',
    ];
}

还有BridgeAsset文件

class BridgeAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';

    public $js = [
        'js/bridge.js'
    ];
    public $depends = [
        'yii\web\JqueryAsset',
        'yii\jui\JuiAsset',
    ];
}

除非我尝试了资产文件中的依赖项,否则无法更改加载脚本的顺序。

1 个答案:

答案 0 :(得分:0)

最后在web.php中找到了答案,我在assetManager下添加了以下内容:

'bundles' => [
                'yii\bootstrap\BootstrapAsset' => [
                    'depends' => [
                        'yii\jui\JuiAsset',
                    ],
                ],
            ],

这使JqueryUI取决于引导资产。