我正在使用 PHP 框架 laravel,并且刚刚购买了 CDN 服务器计划。
我想知道是否有人曾经或建议将 laravel 的一些核心文件移动到 CDN 上以减少加载时间?
将 Laravel 核心文件移动到 CDN 会增加而不是减少加载时间。想想看 - 你的服务器需要获取网络上的所有 PHP 脚本,每个文件一个请求,这将产生大量数据。PHP fopen 包装器也不支持缓存,因此您将失去 CDN 的主要优势。
如果您真的想减少磁盘 I/O(听起来这就是您想要实现的),请考虑使用操作码缓存(memcache、eAccelerator)。这会将您的 PHP 代码以其执行前编译的形式缓存在 RAM 中,这使您可以安全地将解释步骤从大多数请求的循环中抛出,从而加快页面加载速度。
或者切换到 PHP5.5,虽然它还没有完全准备好,因为它有一个内置的操作码缓存。
这是 Laravel 的 CDN 资产管理器包,默认支持 Amazon S3。
https://github.com/Vinelab/cdn
{
"require": {
"vinelab/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
],
运行此 artisan 命令将您的资产推送到 CDN。
php工匠cdn:推送
在您的视图或代码中的其他任何地方使用它:
{{ Cdn::asset('public/assets/js/script.js') }}
{{ Cdn::asset('public/assets/css/main.css') }}