Yii – 外部JS文件Inlclude,registerScriptFile并发布

前端之家收集整理的这篇文章主要介绍了Yii – 外部JS文件Inlclude,registerScriptFile并发布前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为我的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'
);

猜你在找的PHP相关文章