Extending default Yii CClientScript class to use multiple subdomains for assets (scripts and stylesheets).
You should make sure, that your HTTP-server configured properly - 'assetsSubdomain' and all its combinations are pointing to your 'public_html' directory.
Place MultidomainClientScript.php file into protected/components directory.
After this, you can enhance CClientScript class by making some changes in your config file (protected/config/main.php):
'components' => array( ... 'clientScript' => array( 'class' => 'application.components.MultidomainClientScript', 'enableMultidomainAssets' => true, 'assetsSubdomain' => 'assets', 'indexedAssetsSubdomain' => false, ), ... )
enableMultidomainAssets - whether to use subdomains for ClientScript assets. Default is trueassetsSubdomain - subdomain name (e.g. 'http://assets.example.com'). Default is 'assets'indexedAssetsSubdomain - whether to use indexed subdomains for registered script files basing on their 'position' param. Default is falseExample for indexedAssetsSubdomain=true param:
Yii::app()->clientScript->registerScriptFile('/js/script.js', CClientScript::POS_HEAD); // will output: <head> ... <script type="text/javascript" src="http://assets0.example.com/js/script.js"></script> ... </head>
Yii::app()->clientScript->registerScriptFile('/js/script.js', CClientScript::POS_END) // will output: <body> ... <sсript type="text/javascript" src="http://assets2.example.com/js/script.js"></script> </body>
Yii since 1.1.7 or above.
Be the first person to leave a comment
Please login to leave your comment.