2

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

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

4

2 回答 2

0

将 Laravel 核心文件移动到 CDN 会增加而不是减少加载时间。想想看 - 你的服务器需要获取网络上的所有 PHP 脚本,每个文件一个请求,这将产生大量数据。PHP fopen 包装器也不支持缓存,因此您将失去 CDN 的主要优势。

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

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

于 2013-04-08T10:37:52.880 回答
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
],

用法:

  1. 运行此 artisan 命令将您的资产推送到 CDN。

    php工匠cdn:推送

  2. 在您的视图或代码中的其他任何地方使用它:

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

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

于 2014-09-10T06:05:02.090 回答