i’m trying publishing js and css now and i see path is hashed with 8 letters
/* @var $c CClientScript */
$c = Yii::app()->clientScript;
/* @var $a CAssetManager */
$a = Yii::app()->assetManager;
$c->scriptMap['jquery.js'] = false;
//$c->registerCoreScript('jquery');
$p = 'protected/assets/3rd-party/';
$to_pub = [$p.'jquery-2.0.3.min.js', $p.'jquery-raty/', $p.'jqgrid/', $p.'yui-reset-3.5.0.css'];
$hashed = [];
foreach ($to_pub as $v) {
$pp = $a->publish($v);
$hashed[] = $pp;
if (strripos($pp,'.js',-1) == strlen($pp)-3) {
$c->registerScriptFile($pp, CClientScript::POS_HEAD);
} elseif (strripos($pp,'.css',-1) == strlen($pp)-4) {
$c->registerCssFile($pp);
}
}
var_dump($hashed);
which gives
array (size=4)
0 => string '/mylib/assets/f89d1c3e/jquery-2.0.3.min.js' (length=42)
1 => string '/mylib/assets/cb100d81' (length=22)
2 => string '/mylib/assets/9d505a7d' (length=22)
3 => string '/mylib/assets/490cbaff/yui-reset-3.5.0.css' (length=42)
my question is: can i make something like
array (size=4)
0 => string '/mylib/assets/4th-party/jquery-2.0.3.min.js' (length=42)
1 => string '/mylib/assets/4th-party/jquery-raty' (length=22)
2 => string '/mylib/assets/4th-party/jqgrid' (length=22)
3 => string '/mylib/assets/4th-party/yui-reset-3.5.0.css' (length=42)
also. another similar question:
i want to replace jquery from Yii for whole app, i found a solution like
$c->scriptMap['jquery.js'] = 'some-published-path-here';
$c->registerCoreScript('jquery');
should i place it into custom controller?
thanks