Solución:
Algo como esto:
<?php
$baseUrl = Yii::app()->baseUrl;
$cs = Yii::app()->getClientScript();
$cs->registerScriptFile($baseUrl.'/js/yourscript.js');
$cs->registerCssFile($baseUrl.'/css/yourcss.css');
?>
Puede hacerlo agregando
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/path/to/your/script');
Me gustó responder a esta pregunta.
Hay muchos lugares donde tenemos archivos css y javascript, como en la carpeta css que está fuera de la carpeta protegida, archivos css y js de extensión y widgets que necesitamos incluir externamente en algún momento cuando usamos mucho ajax, archivos js y css del núcleo marco que también debemos incluir externamente en algún momento. Así que hay algunas formas de hacer esto.
Incluya archivos js centrales de framework como jquery.js, jquery.ui.js
<?php
Yii::app()->clientScript->registerCoreScript('jquery');
Yii::app()->clientScript->registerCoreScript('jquery.ui');
?>
Incluya archivos de la carpeta css fuera de la carpeta protegida.
<?php
Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/example.css');
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl.'/css/example.js');
?>
Incluya archivos css y js de extensión o widgets.
Aquí, fancybox es una extensión que se coloca en una carpeta protegida. Los archivos que incluimos tienen ruta: / protected / extensions / fancybox / assets /
<?php
// Fancybox stuff.
$assetUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('ext.fancybox.assets'));
Yii::app()->clientScript->registerScriptFile($assetUrl.'/jquery.fancybox-1.3.4.pack.js');
Yii::app()->clientScript->registerScriptFile($assetUrl.'/jquery.mousewheel-3.0.4.pack.js');
?>
También podemos incluir archivos de framework centrales:
Ejemplo: estoy incluyendo el archivo js de CListView.
<?php
$baseScriptUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('zii.widgets.assets'));
Yii::app()->clientScript->registerScriptFile($baseScriptUrl.'/listview/jquery.yiilistview.js',CClientScript::POS_END);
?>
- Necesitamos incluir archivos js de widgets zii o extensión externamente a veces cuando los usamos en la vista renderizada que se reciben de la llamada ajax, porque cargar cada vez que se carga un nuevo archivo ajax crea un conflicto al llamar a funciones js.
Para obtener más detalles, consulte el artículo de mi blog.