Laravel& CDN集成

时间:2013-04-08 10:33:29

标签: php laravel cdn

我正在使用PHP框架laravel,刚刚购买了CDN服务器的计划。

我想知道有没有人或建议将一些laravel的核心文件移到CDN上以减少加载时间?

2 个答案:

答案 0 :(得分:0)

将Laravel核心文件移动到CDN将增加,而不是减少,即加载时间。考虑一下 - 您的服务器需要获取网络上的所有PHP脚本,每个文件一个请求,这相当于大量的数据。 PHP fopen包装器也不支持缓存,因此通过这样做你将失去CDN的主要好处。

如果你真的想减少磁盘I / O(听起来这是你想要实现的),可以考虑一个操作码缓存(memcache,eAccelerator)。这将您的PHP代码缓存在其执行前编译形式的RAM中,这样您就可以在大多数请求中安全地将解释步骤抛出循环,从而加快页面加载速度。

或者切换到PHP5.5,虽然还没有准备好,因为它内置了操作码缓存。

答案 1 :(得分:0)

这是Laravel的CDN资产管理器包,默认情况下支持Amazon S3。

<强> https://github.com/Vinelab/cdn

通过Composer安装:

    {
    "require": {
        "vinelab/cdn": "*"
    }

添加您的CDN凭证:

        'credentials' => [
            'key'    => '',
            'secret'    => '',
        ],

        'buckets' => [
            'bucket-name-here' => '*',
        ]

指定要上载的目录,扩展名,文件和模式

'include'    => [
    'directories'   => ['public/dist'],
    'extensions'    => ['.js', '.css', '.yxz'],
    'patterns'      => ['**/*.coffee'],
],

还指定要忽略的内容

'exclude'    => [
    'directories'   => ['public/uploads'],
    'files'         => [''],
    'extensions'    => ['.TODO', '.txt'],
    'patterns'      => ['src/*', '.idea/*'],
    'hidden'        => true, // ignore hidden files
],

USAGE:

  1. 运行此artisan命令将资源推送到CDN。

    php artisan cdn:push

  2. 在您的视图或代码中的任何其他位置使用以下内容:

    {{Cdn :: asset('public / assets / js / script.js')}}

    {{Cdn :: asset('public / assets / css / main.css')}}