cdn, Laravel的CDN资产管理器包

分享于 

6分钟阅读

GitHub

  繁體 雙語
CDN Assets Manager Package for Laravel.
  • 源代码名称:cdn
  • 源代码网址:http://www.github.com/Vinelab/cdn
  • cdn源代码文档
  • cdn源代码下载
  • Git URL:
    git://www.github.com/Vinelab/cdn.git
    Git Clone代码到本地:
    git clone http://www.github.com/Vinelab/cdn
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/Vinelab/cdn
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Laravel 资产管理器

    Total DownloadsLatest Stable VersionLatest Unstable VersionBuild StatusScrutinizer Code QualityLicense

    用于 Laravel的内容传递网络包

    软件包提供了开发人员能够将他的资产( 或者任何 public 文件) 上传到一个with命令的能力。 然后它允许他在本地和在线版本的文件之间进行 switch。

    Laravel 支持

    高光

    • Amazon Web服务 - S3
    • 将内容上载到CDN的工匠命令
    • 访问CDN资产的简单 Facade

    安装

    通过编写器实现的插件

    在项目中需要 vinelab/cdn:

    composer require vinelab/cdn:*

    因为这是一个 Laravel 软件包,所以我们需要 register 服务提供者:

    将服务提供程序添加到 config/app.php:

    'providers'=>array(//...VinelabCdnCdnServiceProvider::class,),

    配置

    .env 文件中设置凭据。

    注意:你必须在项目处有一个 .env 文件,以保存敏感信息。

    AWS_ACCESS_KEY_ID=
    AWS_SECRET_ACCESS_KEY=

    发布包配置 file:

    php artisan vendor:publish vinelab/cdn

    你可以在 config/cdn.php 找到它

    默认提供程序
    'default'=>'AwsS3',
    CDN提供程序配置
    'aws'=> ['s3'=> ['version'=>'latest','region'=>'','buckets'=> ['my-backup-bucket'=>'*', ] ]],
    多个桶
    'buckets'=> ['my-default-bucket'=>'*',// 'js-bucket' => ['public/js'],// 'css-bucket' => ['public/css'],//.. .]
    文件&目录插件包括:

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

    '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],
    电子邮件地址

    设置CDN网址:

    'url'=>'https://s3.amazonaws.com',
    HTTP

    设置HTTP参数:

    'http'=>'['verify' => path-to-your-pem-certificate-file]',
    旁路

    要加载你的本地资产进行测试或者在开发期间,请将 bypass 选项设置为 true:

    'bypass'=>true,
    支持
    'cloudfront'=> ['use'=>false,'cdn_url'=>''],
    其他配置
    'acl'=>'public-read','metadata'=> [ ],'expires'=>gmdate("D, d M Y H:i:s T", strtotime("+5 years")),'cache-control'=>'max-age=2628000',

    你可以随时参考 AWS S3文档获得更多详细信息: aws-sdk-php

    用法

    上传资产到 CDN

    php artisan cdn:push

    从CDN删除资产

    php artisan cdn:empty
    负载资产

    使用 facade Cdn 调用 Cdn::asset() 函数。

    注意:与在 public/ 目录中查找资产的Laravel asset 相同:

    {{Cdn::asset('assets/js/main.js')}}//example result: https://js-bucket.s3.amazonaws.com/public/assets/js/main.js{{Cdn::asset('assets/css/style.css')}}//example result: https://css-bucket.s3.amazonaws.com/public/assets/css/style.css

    注意:与 Laravel elixir 相同:它从生成文件夹加载 manifest.json 文件并选择通过吞咽生成的正确文件修订:

    {{Cdn::elixir('assets/js/main.js')}}//example result: https://js-bucket.s3.amazonaws.com/public/build/assets/js/main-85cafe36ff.js{{Cdn::elixir('assets/css/style.css')}}//example result: https://css-bucket.s3.amazonaws.com/public/build/assets/css/style-2d558139f2.css

    要使用 public/ 目录之外的文件,app/ 中的任何位置都使用 Cdn::path() 函数:

    {{Cdn::path('private/something/file.txt')}}//example result: https://css-bucket.s3.amazonaws.com/private/something/file.txt

    测试

    若要运行测试,请从项目文件夹运行以下命令。

    $./vendor/bin/phpunit

    支持

    在Github上的

    请参见为细节提供帮助。

    安全性

    如果发现任何相关的安全问题,请电子邮件 mahmoud@vinelab.com,而不是使用问题跟踪程序。

    Credits

    许可证

    MIT许可证( MIT ) 有关详细信息,请参阅许可证文件


    MAN  PAC  PACK  Laravel  asset  Assets  
    相关文章