htom
(Htom78)
1
我了解到 clientScript 可以动态引入,也可以在配置文件中配置, 不过在配置文件中配置没有起效, 自己写代码是生效的。
'clientScript'=>array(
'scriptMap'=>array(
'register.js'=>'register.js',
'login.js'=>'login.js',
),
),
这个是我的配置文件的部分代码?
是否需要其他的配置? layout 是否需要配置啥?
谢谢!
miles
(Cuiming2355 Cn)
2
我不知道是不是你对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这个别名就好了。