2015-05-22 21:02:09 8030次浏览 2条回答 4 悬赏 0 金钱

资源包里的js文件都是加载在尾部的,启用了layout。这样我在view里直接写javascript就在出现在引入其他js文件前面,导致无效,用registerJs格式又不好整,求办法!

最佳答案

  • 性感的农民 发布于 2015-05-22 22:04 举报

    想加载在头部,给你个例子,注意$jsOptions

    class AppAsset extends AssetBundle
    {
        public $basePath = '@webroot';
        public $baseUrl = '@web';
        public $css = [
            'css/site.css',
        ];
        public $js = [
        ];
        public $depends = [
            'yii\web\YiiAsset',
            'yii\bootstrap\BootstrapAsset',
            '\rmrevin\yii\fontawesome\AssetBundle',
        ];
        public $jsOptions = [
            'position' => \yii\web\View::POS_HEAD
        ];    
    }
    
    3 条回复
    回复于 2015-05-23 09:58 回复

    有强迫症,不想把js文件加载在头部。看来是没有办法了么

    回复于 2015-05-23 11:13 回复

    如果你在view里面写原生js的话,AssetBundle不必加载在头部。比如最常用的window.onload方法:

    window.onload = function (){ 
        ...
    }
    

    而不是写成依赖jQuery的方式:

    $(function () {
        ...
    });
    
    回复于 2015-05-23 17:19 回复

    用requirejs了,抛弃AssetBundle加载JS了

    , 觉得很赞
您需要登录后才可以回答。登录 | 立即注册
den1986
见习主管

den1986

注册时间:2015-05-10
最后登录:2017-08-04
在线时长:4小时12分
  • 粉丝8
  • 金钱75
  • 威望15
  • 积分265

热门问题