我正在为我的Web应用程序使用YII框架.我有一个关于注册外部
Java脚本文件的问题.
有人可以帮我吗
>什么是最好的位置复制Java脚本文件(哪个文件夹)
>我看到有两种注册该外部Java脚本的方法
文件
第一种方法
$baseUrl = Yii::app()->baseUrl; $cs = Yii::app()->getClientScript(); $cs->registerScriptFile($baseUrl.'/js/yourscript.js');
第二次
$cs=Yii::app()->getClientScript(); $cs->registerScriptFile(Yii::app()->getAssetManager()->publish('path/to/js')); $cs->registerScript('id','your js here');
在第一种方法中,我直接使用registerScriptFile注册并传递java脚本文件
在第二种方法中,我正在注册和发布脚本.这意味着它会复制到资产文件夹. (请更正我如果我错了)
然后最后一步做什么,什么是id和再次java脚本文件. ($cs-> registerScript(‘id’,’你的js这里’);)
在我的情况下,我从一个视图访问它,所以在第二种方法,因为它被发布到资产文件夹,如果10个客户端调用该文件,它发布10次(因为我从视图文件访问它)
我有点困惑
感谢您的回答
问候
基兰
Yii Assets文件夹通常由Widgets和Yii的内部组件(如Gridview)使用.您不需要将外部JS或CSS文件存储或发布到资产文件夹.
其次如果文件已经存在于资源文件夹中,那么getAssetManager() – > publish(‘path / to / js’)将不会复制它.
并且最后你不需要实例化CClientScript类,可以直接调用它
Yii::app()->clientScript->registerScriptFile( Yii::app()->baseUrl.'/js/file.js' );
或者如果您正在使用主题
Yii::app()->clientScript->registerScriptFile( Yii::app()->theme->baseUrl.'/js/file.js' );