yii2 加载静态资源

Posted 狗哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 <[email protected]>
 * @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() ?>

  

以上是关于yii2 加载静态资源的主要内容,如果未能解决你的问题,请参考以下文章

EasyUI Tabs + Yii2.0实现iframe方式打开页面(解决共用静态文件引入加载的问题)

Yii2 负载均衡找不到JS,CSS

解决yii2 禁用layout时AppAsset不加载资源的问题

yii2单个视图加载jss,css

Yii2 配置 Nginx 伪静态

Yii2片段缓存详解