Yii 1.1: multidomain-client-script

Extension allows to use multiple domains (subdomains) for loading assets.
8 followers

Multidomain ClientScript (assets)

Extending default Yii CClientScript class to use multiple subdomains for assets (scripts and stylesheets).

Preinstall

You should make sure, that your HTTP-server configured properly - 'assetsSubdomain' and all its combinations are pointing to your 'public_html' directory.

Install and config (available and default settings)

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,
    ),
    ...
)

Params

  • enableMultidomainAssets - whether to use subdomains for ClientScript assets. Default is true
  • assetsSubdomain - 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 false

Examples

Example 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>

Requirements

Yii since 1.1.7 or above.

Resources

Be the first person to leave a comment

Please to leave your comment.

Create extension