We accelerate websites

15 days free trial Sign up

Media Acceleration Stream to the world

15 days free trial Sign up

Extensive Network Excellent world coverage

Laravel CDN integration

Before you start

  • Before you take any steps please back up your files and database.
  • In the following we are going to integrate a CDN service using its CDN domain 12345.r.cdnsun.net. Please refer to Services/How-To for your CDN domain.
  • If you are going to integate a CDN service also on https:// pages then you must use CDN domain with SSL enabled.
  • If your website embeds custom fonts then please first enable CORS for them.
  • Before you take any steps please make sure that your CDN domain is ready-to-use here.

Create CDN Static service

Please refer to Creating a CDN Static service for more details.

Enable CDN in Laravel

Define CDN in config

Add the following to the Laravel's /config/app.php file.

<?php

return [
...
'cdn_enabled'   => true,
'cdn_domain'    => '12345.r.cdnsun.net',
'cdn_protocol'  => 'http',
];

Create CDN helper

Create a file app/helpers.php with the following content.

<?php

function cdn($url = null)
{
    $url = (string) $url;
    if(empty($url))
    {
        throw new Exception('URL missing');
    }

    $pattern = '|^http[s]{0,1}://|i';        
    if(preg_match($pattern, $url))
    {
        throw new Exception('Invalid URL. ' .
            'Use: /image.jpeg instead of full URI: ' .
            'http://domain.com/image.jpeg.'
        );
    }
        
    $pattern = '|^/|';        
    if(!preg_match($pattern, $url))
    {
        $url = '/' . $url;
    }

    if(!Config::get('app.cdn_enabled'))
    {
        return $url;
    }
    else
    {
        return Config::get('app.cdn_protocol') . '://' . Config::get('app.cdn_domain') . $url;
    }    
}   

Update autoloader

Add the following to the Laravel's composer.json file under the key autoload.

...
"autoload": {
    "classmap": [
      ...
     ],
     ...
     "files": [
         "app/helpers.php"
     ]
},
...

and in terminal run the following command.

composer dump-autoload    

Use the CDN helper in views

{{ cdn('/image.jpeg') }}

will output

http://12345.r.cdnsun.net/image.jpeg

Notes

  • View HTML source code of your web pages to verify that you are using CDN, you should see source attribute of your images, CSS, JavaScript, etc. beginning with your CDN domain.
  • Don't see your CDN domain in source code of your web pages? If your website is using any cache plug-in/mechanism then you might want to clear/flush its cache.
  • Having troubles with custom fonts? Please refer to Using custom fonts with CDN - setting CORS for more details.
  • Still having troubles? Check your CDN URLs in our CDN content check or please refer to Debugging a CDN service for more hints.
 
  _____    __   __     _____   __   __  
 |__  //   \ \\/ //   / ___//  \ \\/ // 
   / //     \ ` //    \___ \\   \ ` //  
  / //__     | ||     /    //    | ||   
 /_____||    |_||    /____//     |_||   
 `-----`     `-`'   `-----`      `-`'   
                                        
Europe
  • Amsterdam
  • Athens
  • Baku
  • Budapest
  • Copenhagen
  • Dubai
  • Dublin
  • Frankfurt
  • Helsingborg
  • Karlskrona
  • Khabarovsk
  • Kharkov
  • Kungalv
  • London
  • Lvov
  • Madrid
  • Milan
  • Moscow
  • Odessa
  • Paris
  • Polevskoy
  • Rostov-on-Don
  • Saint Petersburg
  • Samara
  • Stockholm
  • Tel Aviv-Yafo
  • Trondheim
  • Zagreb
America
  • Arlington
  • Atlanta
  • Chicago
  • Dallas
  • Denver
  • Green Bay
  • Los Angeles
  • Miami
  • Montreal
  • New York
  • Phoenix
  • Portland
  • Provo
  • Queretaro
  • Reston
  • Sacramento
  • San Jose
  • Sao Paulo
  • Seattle
  • Toronto
  • Washington
Contact
  • e-mail: info@cdnsun.com
  • skype: cdnsun.com
  • phone: +1 844 300 9206
  • phone: +420 776 256 872
Blog Twitter LinkedIn Facebook CrunchBase Google+ / Google plus Foursquare Pinterest