【问题标题】:Yii2 add conditions to AssetBundleYii2 给 AssetBundle 添加条件
【发布时间】:2016-01-02 00:05:51
【问题描述】:

我想创建这个结果:

<!-- Placeholder for IE9 -->
<!--[if IE 9 ]>
    <script src="vendors/bower_components/jquery-placeholder/jquery.placeholder.min.js"></script>
<![endif]-->

我有这个 AppAsset 包

class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web/frontend/assets';
    public $css = [
        'css/site.css', 
    ];
    public $js = [
        'functions.js',
        'jquery.placeholder.min.js',
        'line-chart.js',
    ];

    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

我希望只有 jquery.placeholder.min.js 有这些 jsOption,我尝试添加 jsOptions 属性但没有成功。

    public $jsOptions = [
       ['condition' => 'IE 9']
    ];

有办法让它工作吗?或者也许我必须只为这些文件创建一个新的 Bundle?

我在官方文档中没有看到更多信息:http://www.yiiframework.com/doc-2.0/guide-structure-assets.html

【问题讨论】:

  • 你的括号太多了;试试 `public $jsOptions = [ 'condition' => 'IE 9' ];

标签: yii2 yii2-advanced-app


【解决方案1】:

从基础包中移除你的 js

    public $js = [
    'functions.js',
    //'jquery.placeholder.min.js',
    'line-chart.js',
 ]

在你的依赖中添加一个包

public $depends = [
    'yii\web\YiiAsset',
    'yii\bootstrap\BootstrapAsset',
    'yourapp\assets\myAsset',    
];

创建你的资产

<?php
 namespace yourapp\assets;

 use yii\web\AssetBundle;

class myAsset extends AssetBundle
{
    public $js = [
       'jquery.placeholder.min.js',
    ];

    public $jsOptions = ['condition' => 'IE 9'];
}

【讨论】:

    猜你喜欢
    • 2019-03-18
    • 2014-11-15
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    相关资源
    最近更新 更多