yii2 加載靜態資源


1、在 assets/AppAsset 里定義方法

<?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace app\assets;

use yii\web\AssetBundle;

/**
 * @author Qiang Xue <qiang.xue@gmail.com>
 * @since 2.0
 */
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';

    // 全局
    public $css = [
        
    ];

    // 全局
    public $js = [
        
    ];

    public $depends = [
        // 'yii\web\YiiAsset',
        // 'yii\bootstrap\BootstrapAsset',  // 注釋掉禁用bootstrap
    ];

    // 這是設置所有js放置的位置 
    public $jsOptions = [  
        'position' => \yii\web\View::POS_HEAD,    
    ]; 

    //定義按需加載JS方法
    public static function addJs($view, $jsfile) { 
        $view->registerJsFile(
            $jsfile, 
            [
                AppAsset::className(), 
                "depends" => "app\assets\AppAsset"
            ]
        ); 
    } 

    //定義按需加載css方法
    public static function addCss($view, $cssfile) { 
        $view->registerCssFile(
            $cssfile, 
            [
                AppAsset::className(), 
                "depends" => "app\assets\AppAsset"
            ]
        ); 
    } 

}

2、在view里調用

<?php

/* @var $this \yii\web\View */
/* @var $content string */

use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use app\assets\AppAsset;

// 注冊全局加載
AppAsset::register($this);

// 按需加載css
AppAsset::addCss($this, Yii::$app->request->baseUrl."/css/site.css");
// 按需加載js
AppAsset::addJs($this, Yii::$app->request->baseUrl."/js/respond.min.js");

?>
<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
    <meta charset="<?= Yii::$app->charset ?>">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?= Html::csrfMetaTags() ?>
    <title><?= Html::encode($this->title) ?></title>
    <?php $this->head() ?>
</head>
<body>
<?php $this->beginBody() ?>

        
    <?= $content ?>

<?php $this->endBody() ?>
</body>
</html>
<?php $this->endPage() ?>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM