clientScript 配置问题?

我了解到 clientScript 可以动态引入,也可以在配置文件中配置, 不过在配置文件中配置没有起效, 自己写代码是生效的。

'clientScript'=>array(


	                      'scriptMap'=>array(


	                          'register.js'=>'register.js',


	                          'login.js'=>'login.js',


	                      ),


	               ),

这个是我的配置文件的部分代码?

是否需要其他的配置? layout 是否需要配置啥?

谢谢!

我不知道是不是你对scriptMap的理解有问题

你是不是认为添加了这个配置以后,页面中就自动加载这些JS了?

其实不是这样的,scriptMap的作用实际是给js文件定义别名。

我举一个例子说明定义别名的意义:

一般我们开发过程中,为了方便修改代码,都会使用为压缩过的js。发布的产品环境的时候,为了性能最优,都会使用压缩过的js。如果你有类似的需求,这时候配置scriptMap就能派上用处了。

开发时将scriptMap配置为如下形式:

‘clientScript’=>array(

‘scriptMap’=>array(

‘register.js’=>‘register_development.js’,

),

),

发布到产品环境时将scriptMap配置为如下形式:

‘clientScript’=>array(

‘scriptMap’=>array(

‘register.js’=>‘register_production.js’,

),

),

页面代码里用如下方式调用register.js

Yii::app()->clientScript->registerScriptFile(‘register.js’)

这样做的好处是,你不用关心不同运行环境下register.js文件的真实名称,只需记住register.js这个别名就好了。

理解了, 谢谢!