我正在使用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
通过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
],
用法:
运行这个artisan命令将你的资源推送到CDN。
php artisan cdn:push
在您的视图或代码中的其他任何地方使用它:
{{Cdn:资产("公共/资产/js/script.js")}}
{{Cdn:资产("公共/资产/css/main.css")}}