yii2 如何引入js 或css 追加到指定位置

作者: php 发布时间: 2017-06-22 浏览: 2973 次 编辑

一般来说,网页内部的js文件或代码,都是放置在网页底部</body>的前面,这是因为网页自上而下加载,用户在访问我们页面的时候尽量不要因为加载js展现过长时间的空白页面,停留时间过长就白白流失了用户量。

yii2中是集成了jQuery的,而且jQuery文件是加载在页面底部的,因此,如果我们的js代码段不在页面底部加载,就很大可能会发生$未定义的友好提示。

以后台为例:

1,修改: frontend/assets/AppAsset.php

<?php
namespace frontend\assets;
use yii\web\AssetBundle;
/**
 * Main frontend application asset bundle.
 */
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    //这里是全局的
    public $css = [
        'css/site.css',
    ];
    //这里是全局的
    public $js = [
    ];
    //这里是全局的bootstrap样式
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];

    //追加这里2个函数
    //定义按需加载JS方法 ,注意加载顺序在最后
    public static function addScript($view, $jsfile) {
        $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'frontend\assets\AppAsset']);
    }
    //定义按需加载css方法,注意加载顺序在最后
    public static function addCss($view, $cssfile) {
        $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'frontend\assets\AppAsset']);
    }
}

2,在你想调用的页面引用就可以了(注:因为main.php是个公共页面,如果在这里使用了,则变成全部的了)

<?php
/**
 * Created by PhpStorm.
 * User: niwoxuexi.com
 * Date: 2017/6/22
 * Time: 18:07
 */
use frontend\assets\AppAsset;

$this->title = '你我学习网';
AppAsset::addScript($this,'@web/assets/js/test.js');
?>
<div>
    hello world!
</div>


标签: yii2引用js