How to integrate CDN with codeignator?

IMP: You can use the steps of this article if you have purchased the AccuWeb Hosting CDN Service. If you haven't purchased our CDN service, the provided steps might not work for you.

CDN or Content Distribution Network enhances the website speed by providing your website static content from the client's nearest geolocation server. CDN geolocation server cache the static content of your website.

Please refer to the following steps to integrate your CDN Hosting with Codeignator.

  1. First, create the CDN CNAME record and add it to your DNS Zone. You can do this using this article.

  2. You get the CDN URL looking like

Here, we will extend the existing cdn_base_url function by overwriting it. To do this, create a file named cdn_helper.php inside application/helpers/

The below code will overwrite the cdn_base_url function to load your Codeignator website static content, like .css, .js, .jpg, .png, etc., from your CDN URL.

function cdn_base_url($uri)

$currentInstance =& get_instance();

$keybasedcdnUrl = $currentInstance->config->item('cdn_based_key_url');

$extensions = array('css', 'js', 'jpg', 'jpeg', 'png', 'gif','pdf');
$pathParts = pathinfo($uri);

if (!empty($keybasedcdnUrl) && in_array($pathParts['extension'],$extensions)) {
return $keybasedcdnUrl . $uri;

return $currentInstance->config->cdn_base_url($uri);

  1. At the next step, go to the config.php file at path application/config/ and add the below line.

$config['cdn_based_key_url'] = 'cdn based url';

Note: change the cdn_based_url with your exact CDN URL.

Now, your static content should load from the CDN geolocation server. To verify this, check the output of one of the images on your Codeignator website. It should show the src with


This is it. You have integrated the CDN with Codeignator.

→ Looking to integrate your website with CDN? Please refer to the Integrate website with CDN for more details. 

→ Looking to integrate CDN with WordPress? Please refer to integrate CDN with WordPress for more details. 

Was this answer helpful?

« Back